.elementor-kit-6{--e-global-color-primary:#801030;--e-global-color-secondary:#1A1512;--e-global-color-text:#4B423C;--e-global-color-accent:#801030;--e-global-color-b22c470:#5E0B23;--e-global-color-95b0cea:#F5E9EC;--e-global-color-b65e9f0:#E9B8C4;--e-global-color-0a16bc3:#1A1512;--e-global-color-0a4e1e6:#685D55;--e-global-color-7e3f660:#F6F2EC;--e-global-color-6438c66:#E3DBD0;--e-global-color-63dfa58:#CFC5B8;--e-global-color-d508fe4:#FFFFFF;--e-global-color-93a04b0:#14100E;--e-global-color-27d51f7:#D9D0C7;--e-global-color-260ca9d:#1E4D24;--e-global-color-39d717e:#E7F2E8;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Source Sans 3";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-weight:700;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --brand:#801030; --brand-dark:#5E0B23; --brand-tint:#F5E9EC; --ink:#1A1512; --ink-soft:#4B423C; --muted:#685D55; --paper:#F6F2EC; --line:#E3DBD0; --white:#FFFFFF; --night:#14100E; --font-heading:Archivo; --font-body:Source Sans 3; --fs-display:clamp(2rem, 1.4rem + 1.8vw, 3rem); --fs-h2:clamp(2rem, 1.5rem + 2vw, 3.25rem); --fs-h3:clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem); --fs-body:18px; --fs-small:15px; --space-section:clamp(64px, 4rem + 4vw, 128px); --gutter:clamp(16px, 1rem + 2vw, 40px); --container:1280px; --radius:10px; --brand-soft:#E9B8C4; --on-dark:#D9D0C7; --line-strong:#CFC5B8; --e-gv-c5753e7:#E8A33D; --success:#1E4D24; --success-bg:#E7F2E8; }
/* Start custom CSS *//* Font variables: Elementor writes them unquoted, and "Source Sans 3" (a name ending in a number) is invalid CSS
   unquoted, so body text silently fell back to the system font. Redefine them quoted, with fallbacks. */
html:root { --font-body: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif; --font-heading: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif; }
body { font-family: var(--font-body); }

/* Site-wide tweaks for V3 widgets the atomic class system can't reach. */
.elementor-widget-gallery .e-gallery-image { border-radius: var(--radius); }
.elementor-widget-google_maps iframe { border-radius: var(--radius); display: block; }

/* Blog post body (raw post HTML rendered by the Post Content widget). */
.elementor-widget-theme-post-content { font-family: var(--font-body); font-size: 18px; line-height: 1.75; color: var(--ink-soft); }
.elementor-widget-theme-post-content :is(h2, h3, h4) { font-family: var(--font-heading); color: var(--ink); line-height: 1.2; letter-spacing: -0.015em; margin: 1.8em 0 0.6em; text-wrap: balance; }
.elementor-widget-theme-post-content h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); font-weight: 800; }
.elementor-widget-theme-post-content h3 { font-size: 1.4rem; font-weight: 700; }
.elementor-widget-theme-post-content h4 { font-size: 1.15rem; font-weight: 700; }
.elementor-widget-theme-post-content p { margin: 0 0 1.2em; text-wrap: pretty; }
.elementor-widget-theme-post-content :is(ul, ol) { margin: 0 0 1.4em; padding-left: 1.3em; }
.elementor-widget-theme-post-content li { margin-bottom: 0.45em; }
.elementor-widget-theme-post-content li::marker { color: var(--brand); }
.elementor-widget-theme-post-content a { color: var(--brand); text-underline-offset: 3px; }
.elementor-widget-theme-post-content a:hover { color: var(--brand-dark); }
.elementor-widget-theme-post-content img { max-width: 100%; height: auto; border-radius: var(--radius); }
.elementor-widget-theme-post-content blockquote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--brand); color: var(--ink); }
.elementor-widget-theme-post-content table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; font-size: 16px; }
.elementor-widget-theme-post-content :is(th, td) { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.elementor-widget-theme-post-content details { border-bottom: 1px solid var(--line); padding: 14px 0; }
.elementor-widget-theme-post-content summary { cursor: pointer; font-family: var(--font-heading); font-weight: 700; color: var(--ink); }
.elementor-widget-theme-post-content details[open] summary { margin-bottom: 8px; }

/* Extra link context inside buttons ("Learn More<span> about …</span>") is for screen readers and crawlers only. */
.e-button-base > span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Sticky mobile contact bar (in the footer component): keep page content clear of it, slide it away while a form is on screen. */
@media (max-width: 767px) {
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  body.eav-form-visible [data-interaction-id="56d41a95"] { transform: translateY(110%); }
}
@media (prefers-reduced-motion: reduce) { [data-interaction-id="56d41a95"] { transition: none !important; } }

/* Posts without a featured image: drop the empty <img> the template would print. */
img.e-image-base:not([src]) { display: none; }
/* Imported post HTML: never let long strings or fixed-width spans push the page sideways. */
.elementor-widget-theme-post-content { overflow-wrap: anywhere; }
.elementor-widget-theme-post-content :is(span, a, code, pre, table, iframe, figure) { max-width: 100%; }

/* ===== Saved templates: "Form – Let's Get In Touch" (11234) and "Section – Book a Free In-Home Design Consultation" (11235) ===== */

/* Contact section */
body .e-con.eav-contact-section { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; display: flex; align-items: center; width: 100%; padding: var(--space-section) var(--gutter); background-color: var(--paper); scroll-margin-top: 90px; }
body .e-con.eav-contact-wrap { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; width: 100%; max-width: var(--container); margin: 0 auto; }
body .e-con.eav-contact-copy, body .e-con.eav-contact-form { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
/* Separator: most pages end with a paper-coloured section (FAQ, "Find out more"), so the contact
   section gets a deeper sand tone and a hairline to read as its own block. */
body .e-con.eav-contact-section { position: relative; background-color: #EFE6DA; border-top: 1px solid rgba(26, 21, 18, 0.12); }
body .eav-contact-copy .elementor-heading-title { font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem); }
@media (max-width: 1024px) {
  body .e-con.eav-contact-wrap { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  body .e-con.eav-contact-form { order: -1; } /* form first on tablet/mobile */
}
body .eav-contact-copy .elementor-heading-title { font-family: var(--font-heading); font-size: var(--fs-h2); font-weight: 800; line-height: 1.08; letter-spacing: -0.025em; color: var(--ink); text-wrap: balance; }
body .eav-contact-intro, body .eav-contact-intro p { margin: 0; font-family: var(--font-body); font-size: 21px; line-height: 1.55; color: var(--ink-soft); text-wrap: pretty; }
body .eav-contact-details .eav-contact-rows { display: flex; flex-direction: column; gap: 18px; }
body .eav-contact-details p { margin: 0; }
body .eav-contact-details .eav-contact-label { font-family: var(--font-body); font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
body .eav-contact-details .eav-contact-value { font-family: var(--font-heading); font-size: 20px; font-weight: 700; color: var(--ink); }
body .eav-contact-details .eav-contact-value a { color: var(--ink); text-decoration: none; }
body .eav-contact-details .eav-contact-value a:hover { color: var(--brand); }
@media (max-width: 767px) { body .eav-contact-intro, body .eav-contact-intro p { font-size: 19px; } }

/* Form card */
body .e-con.eav-form-card { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0; display: flex; flex-direction: column; gap: 14px; width: 100%; padding: 36px; background-color: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--brand); border-radius: var(--radius); scroll-margin-top: 100px; }
@media (max-width: 767px) { body .e-con.eav-form-card { padding: 24px; } }
body .eav-form-card .elementor-widget-heading .elementor-heading-title { font-family: var(--font-heading); font-size: 28px; font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; color: var(--ink); }
body .eav-form-card .eav-form-req p, body .eav-form-card .eav-form-note p { margin: 0; font-family: var(--font-body); font-size: 15px; line-height: 1.5; color: var(--muted); }
body .eav-form-card .eav-form-note { text-align: center; }

/* Form fields (Elementor Pro Form) */
body .eav-form .elementor-form .elementor-field-group { margin-bottom: 14px; }
body .eav-form .elementor-form .elementor-field-group > label.elementor-field-label { font-family: var(--font-body); font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--ink); padding-bottom: 6px; }
body .eav-form .elementor-form .elementor-field-group .elementor-field-textual { font-family: var(--font-body); font-size: 17px; line-height: 1.4; color: var(--ink); background-color: var(--white); border: 1px solid var(--line-strong); border-radius: var(--radius); min-height: 50px; padding: 12px 14px; }
body .eav-form .elementor-form .elementor-field-group textarea.elementor-field-textual { min-height: 110px; }
body .eav-form .elementor-form .elementor-field-group .elementor-field-textual:focus { border-color: var(--brand); outline: 2px solid var(--brand-tint); box-shadow: none; }
body .eav-form .elementor-form .elementor-mark-required .elementor-field-label::after { color: var(--brand); }
body .eav-form .elementor-form .elementor-button { width: 100%; min-height: 56px; padding: 18px 28px; background-color: var(--brand); color: var(--white); font-family: var(--font-heading); font-size: 17px; font-weight: 700; border-radius: var(--radius); transition: background-color 0.15s; }
body .eav-form .elementor-form .elementor-button:hover, body .eav-form .elementor-form .elementor-button:focus { background-color: var(--brand-dark); color: var(--white); }
body .eav-form .elementor-message { font-family: var(--font-body); font-size: 16px; }
body .eav-form .elementor-message.elementor-message-success { color: var(--success); }
body .eav-form .elementor-message.elementor-message-danger, body .eav-form .elementor-error .elementor-field-textual { color: var(--brand-dark); border-color: var(--brand); }
body .eav-form-slot, body .eav-contact-slot { width: 100%; min-width: 0; }

/* List markers: a small check mark instead of the dash line (owner asked for no em-dash look).
   Drawn with a mask, so each list keeps its own marker colour (brand on light, soft pink on dark). */
body .check-item > .check-mark { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 5px; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }/* End custom CSS */