.elementor-widget-kitchor-project .elementor-project__filter.elementor-active,.elementor-widget-kitchor-project .elementor-project__filter:hover{border-color:var( --e-global-color-primary );}.elementor-21269 .elementor-element.elementor-element-7838482 > .elementor-widget-container{padding:0% 05% 0% 5%;}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-post-wrapper .row{margin-left:calc(-44px/2);margin-right:calc(-44px/2);}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-post-wrapper .column-item{padding-left:calc(44px/2);padding-right:calc(44px/2);}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-post-wrapper .row:not(.kitchor-carousel) .column-item{margin-bottom:calc(44px);}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-project__filters{justify-content:center;margin-bottom:55px;}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-project__filter{padding:0% 0% 0% 0%;border-style:solid;}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-project__filter.elementor-active,.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-project__filter:hover{border-color:#ddd;}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-project__filter:not(:last-child){margin-right:calc(10px/2);}.elementor-21269 .elementor-element.elementor-element-7838482 .elementor-project__filter:not(:first-child){margin-left:calc(10px/2);}.elementor-21269 .elementor-element.elementor-element-7838482 .project-inner .project-post-thumbnail img{height:300px;}.elementor-21269 .elementor-element.elementor-element-7838482 .slick-dots{text-align:center;}/* Start custom CSS *//* ==========================================================
   Semi-Custom Homes: page motion + layout helpers
   Text, buttons, sections and colors are styled on each element
   (Style tab). This file only holds font files, theme wrapper fixes,
   and motion keyed to IDs, data attributes and image classes.
   ========================================================== */

/* Cormorant Garamond (editorial serif) */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3bmX5slCNuHLi8bLeY9MK7whWMhyjYqXtK.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300 700; font-display: swap; src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtImSo.woff2) format('woff2'); }

/* Theme wrapper: let sections run full width. The theme's overflow-x:hidden on html/body
   breaks position:sticky and scroll-linked motion, so this page uses overflow-x:clip instead. */
html, body, #page { overflow-x: clip !important; overflow-y: visible !important; }
#content > .col-full { max-width: none; padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }
[id^="skc-"] { scroll-margin-top: 24px; }
[id^="skc-"] a:focus-visible { outline: 2px solid #A69E8F; outline-offset: 4px; }
#skc-faq-6-answer a { color: #2E405E; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
#skc-faq-6-answer a:hover { color: #6F6758; }

/* Five-star icon: the element's background colour (Style tab) is the star colour */
[data-skc-stars] { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 20'%3E%3Cpath transform='translate%280 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2823 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2846 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2869 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2892 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3C/svg%3E") no-repeat left center / contain; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 20'%3E%3Cpath transform='translate%280 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2823 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2846 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2869 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3Cpath transform='translate%2892 0%29' d='M10 1.2l2.7 5.5 6 .9-4.35 4.25 1.03 6L10 15l-5.38 2.85 1.03-6L1.3 7.6l6-.9z'/%3E%3C/svg%3E") no-repeat left center / contain; }

/* Testimonials: horizontal scroll with snap; keyboard-focusable region */
#skc-testimonials-track { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: var(--skc-gutter, 20px); overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #A69E8F transparent; -webkit-overflow-scrolling: touch; }
#skc-testimonials-track > * { scroll-snap-align: start; }
#skc-testimonials-track:focus-visible { outline: 2px solid #A69E8F; outline-offset: 6px; }
#skc-testimonials-track::-webkit-scrollbar { height: 6px; }
#skc-testimonials-track::-webkit-scrollbar-thumb { background: #A69E8F; border-radius: 999px; }
#skc-testimonials-track::-webkit-scrollbar-track { background: #D9D3C8; border-radius: 999px; }

/* Contact panel: embedded form slot + fallback link */
#skc-form-embed:empty { display: none; }
#skc-form-embed iframe, #skc-form-embed .hs-form-frame { width: 100% !important; max-width: 100%; }
#skc-contact-form-fallback a { color: #2E405E; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
#skc-contact-form-fallback a:hover { color: #6F6758; }

/* 270+ counter: counts once from 0 when the stat first enters view.
   The heading text ("270+") is the real, editable value; it is what shows
   with reduced motion or if the animation never starts.
   Target number: global variable skc-homes-built. Duration: skc-count-duration. */
@property --skc-n { syntax: '<integer>'; initial-value: 0; inherits: false; }
@keyframes skc-count { from { --skc-n: 0; } to { --skc-n: var(--skc-homes-built, 270); } }
@keyframes skc-plus { from { opacity: 0; transform: translateY(0.12em); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }

  /* The count wrapper's one-time entrance interaction (replay off) leaves an
     inline transform on it; that starts the count exactly once. */
  #skc-count-number { position: relative; }
  #skc-count-wrap[style*="transform"] #skc-count-number { color: transparent !important; }
  #skc-count-wrap[style*="transform"] #skc-count-number::before {
    content: counter(skc-count) / "";
    counter-reset: skc-count var(--skc-n);
    position: absolute; left: 0; top: 0;
    color: #F7F4EE;
    animation: skc-count var(--skc-count-duration, 1800ms) cubic-bezier(.16,.84,.3,1) forwards;
  }
  #skc-count-wrap[style*="transform"] #skc-count-number::after {
    content: "+" / "";
    position: absolute; right: 0; top: 0;
    color: #A69E8F;
    opacity: 0;
    animation: skc-plus 420ms ease-out forwards;
    animation-delay: var(--skc-count-duration, 1800ms);
  }

  /* Hero: masked reveal on load */
  [data-skc-reveal="hero"] { animation: skc-hero-mask 1500ms cubic-bezier(.76,0,.24,1) 150ms both; }
  [data-skc-reveal="hero-inset"] { animation: skc-hero-mask-side 1300ms cubic-bezier(.76,0,.24,1) 750ms both; }
  .skc-img-hero { animation: skc-hero-settle 2400ms cubic-bezier(.16,.84,.3,1) 150ms both; }
  @keyframes skc-hero-mask { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
  @keyframes skc-hero-mask-side { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
  @keyframes skc-hero-settle { from { scale: 1.22; } to { scale: 1; } }

  /* Scroll-linked photography (Chrome, Edge, Safari 26+; other browsers show the settled image) */
  @supports (animation-timeline: view()) {
    [data-skc-reveal="up"]     { animation: skc-frame-up linear both;     animation-timeline: view(); animation-range: entry 0% cover 42%; }
    [data-skc-reveal="left"]   { animation: skc-frame-left linear both;   animation-timeline: view(); animation-range: entry 0% cover 42%; }
    [data-skc-reveal="right"]  { animation: skc-frame-right linear both;  animation-timeline: view(); animation-range: entry 0% cover 42%; }
    [data-skc-reveal="expand"] { animation: skc-frame-expand linear both; animation-timeline: view(); animation-range: entry 0% cover 60%; }
    .skc-img-settle   { animation: skc-settle linear both;   animation-timeline: view(); animation-range: entry 0% cover 60%; }
    .skc-img-parallax { animation: skc-parallax linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
  }
  @keyframes skc-frame-up     { from { clip-path: inset(28% 0 0 0); translate: 0 72px; } to { clip-path: inset(0 0 0 0); translate: 0 0; } }
  @keyframes skc-frame-left   { from { clip-path: inset(0 34% 0 0); translate: -64px 0; } to { clip-path: inset(0 0 0 0); translate: 0 0; } }
  @keyframes skc-frame-right  { from { clip-path: inset(0 0 0 34%); translate: 64px 0; } to { clip-path: inset(0 0 0 0); translate: 0 0; } }
  @keyframes skc-frame-expand { from { clip-path: inset(9% 14% 9% 14% round 28px); } to { clip-path: inset(0 0 0 0 round 0px); } }
  @keyframes skc-settle       { from { scale: 1.2; } to { scale: 1; } }
  @keyframes skc-parallax     { from { scale: 1.14; translate: 0 -6%; } to { scale: 1.14; translate: 0 6%; } }
}

/* Lighter motion on phones: no side slides or parallax drift, shorter reveals */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    [data-skc-reveal="left"], [data-skc-reveal="right"], [data-skc-reveal="up"] { animation-name: skc-frame-up-soft; animation-range: entry 0% cover 30%; }
    .skc-img-parallax { animation-name: skc-settle-soft; animation-range: entry 0% cover 50%; }
    [data-skc-reveal="expand"] { animation-name: skc-frame-expand-soft; }
  }
  @keyframes skc-frame-up-soft { from { clip-path: inset(14% 0 0 0); translate: 0 28px; } to { clip-path: inset(0 0 0 0); translate: 0 0; } }
  @keyframes skc-settle-soft { from { scale: 1.08; } to { scale: 1; } }
  @keyframes skc-frame-expand-soft { from { clip-path: inset(4% 6% 4% 6% round 18px); } to { clip-path: inset(0 0 0 0 round 0px); } }
}

/* Reduced motion: everything rests in its final state; native entrance interactions are neutralised */
@media (prefers-reduced-motion: reduce) {
  [data-skc-motion] { transform: none !important; opacity: 1 !important; }
  [data-skc-reveal], .skc-img-hero, .skc-img-settle, .skc-img-parallax { animation: none !important; clip-path: none !important; translate: none !important; scale: none !important; }
}/* End custom CSS */