/* Fine Art by Ellen — responsive editorial polish */
:root {
  --fabe-ink: #171716;
  --fabe-muted: #62625f;
  --fabe-line: #d8d5cf;
  --fabe-surface: #f7f5f1;
  --fabe-accent: #315f72;
  --fabe-max: 1280px;
  --fabe-reading: 72ch;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
}

*, *::before, *::after { box-sizing: border-box; }
body { color: var(--fabe-ink); overflow-x: clip; }
img { max-width: 100%; }
.elementor img { display: block; }
.elementor-widget-heading :is(h1,h2,h3,h4,h5,h6) {
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  line-height: 1.65;
}
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor a:focus-visible,
.elementor button:focus-visible,
.elementor input:focus-visible,
.elementor textarea:focus-visible {
  outline: 3px solid var(--fabe-accent) !important;
  outline-offset: 3px;
}
.elementor :is(h1,h2,h3,h4,h5,h6,a,button,input,textarea) {
  scroll-margin-top: 96px;
}

/* Shared header */
.elementor-114 .elementor-element-11xav75u,
.elementor-117 .elementor-element-53m123oc {
  border-bottom: 1px solid rgba(23,23,22,.12);
  box-shadow: 0 3px 16px rgba(20,20,18,.045);
}
.elementor-114 .elementor-element-11xav75u > .e-con-inner,
.elementor-117 .elementor-element-53m123oc > .e-con-inner {
  width: min(calc(100% - 48px), var(--fabe-max));
  margin-inline: auto;
}
.elementor-114 .elementor-widget-image img,
.elementor-117 .elementor-widget-image img {
  max-height: 30px;
  width: auto;
}
.elementor-114 .twbb-nav-menu--main .twbb-item,
.elementor-117 .twbb-nav-menu--main .twbb-item {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  position: relative;
  padding-inline: 16px;
}
.elementor-114 .twbb-nav-menu--main .current-menu-item > .twbb-item::after,
.elementor-117 .twbb-nav-menu--main .current-menu-item > .twbb-item::after,
.elementor-114 .twbb-nav-menu--main .twbb-item:hover::after,
.elementor-117 .twbb-nav-menu--main .twbb-item:hover::after,
.elementor-114 .twbb-nav-menu--main .twbb-item:focus-visible::after,
.elementor-117 .twbb-nav-menu--main .twbb-item:focus-visible::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 7px;
  height: 2px;
  background: currentColor;
}

/* Shared footer */
.elementor-115 .elementor-element-swpff2hc {
  padding: 44px clamp(20px, 5vw, 72px) 36px !important;
}
.elementor-115 .elementor-element-45p74h5z {
  min-height: 44px;
  justify-content: center !important;
  align-items: center !important;
}
.elementor-115 .elementor-element-xxx0cq1y { display: none !important; }
.elementor-115 .elementor-element-dpqbfvgw {
  width: 100% !important;
  --container-widget-width: 100% !important;
  text-align: center !important;
}
.elementor-115 .elementor-social-icons-wrapper { justify-content: center !important; }
.elementor-115 .elementor-social-icon {
  min-width: 44px;
  min-height: 44px;
  display: inline-grid !important;
  place-items: center;
}
.elementor-115 .elementor-element-k706y5t2 { margin-block: 18px !important; }
.elementor-115 .elementor-element-uag4rfvu,
.elementor-115 .elementor-element-uag4rfvu * { text-align: center !important; }

/* Common section rhythm */
:is(.elementor-96,.elementor-97,.elementor-98,.elementor-99,.elementor-100,.elementor-101,.elementor-102,.elementor-103,.elementor-104,.elementor-105) > .twbb_section {
  padding-top: clamp(52px, 6vw, 80px) !important;
  padding-bottom: clamp(52px, 6vw, 80px) !important;
}
:is(.elementor-96,.elementor-97,.elementor-98,.elementor-99,.elementor-100,.elementor-101,.elementor-102,.elementor-103,.elementor-104,.elementor-105) > .twbb_section > .e-con-inner {
  width: min(calc(100% - 48px), var(--fabe-max));
  margin-inline: auto;
}

/* Homepage */
.page-id-96 .elementor-element-ucnec4sl { padding-top: clamp(64px, 8vw, 112px) !important; }
.page-id-96 .elementor-element-x60bw20x,
.page-id-96 .elementor-element-k7jzy8g4 { --container-widget-width: min(760px, 100%) !important; }
.page-id-96 .elementor-element-k7jzy8g4 { margin-top: 20px; }
.page-id-96 .elementor-element-x0rx82zc { margin-top: clamp(36px, 5vw, 64px); }
.page-id-96 .elementor-element-x0rx82zc img {
  width: 100%;
  max-height: 660px;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
}
.page-id-96 .elementor-element-ah6p1hwt > .e-con-inner {
  align-items: flex-start !important;
  gap: clamp(40px, 6vw, 84px);
}
.page-id-96 .elementor-element-m1h3iqo4 { flex: 1 1 58%; }
.page-id-96 .elementor-element-1tb39si9 { flex: 1 1 42%; }
.page-id-96 .elementor-element-1tb39si9 img,
.page-id-96 .elementor-element-6qv2aqn5 img,
.page-id-96 .elementor-element-5cw2rl2v img,
.page-id-96 .elementor-element-kjv8glqb img {
  border-radius: 8px;
}
.page-id-96 .elementor-element-cde1x1ck,
.page-id-96 .elementor-element-w1h0m5r7 { max-width: var(--fabe-reading); }
.page-id-96 .elementor-element-8d923d4 {
  padding: clamp(52px, 7vw, 88px) clamp(24px, 5vw, 72px);
}
.page-id-96 .elementor-element-69d7912 { margin-bottom: 30px; }
.page-id-96 :is(.elementor-element-nknj2l7d,.elementor-element-o29dp1e3) {
  padding-top: clamp(32px, 4vw, 52px) !important;
  padding-bottom: clamp(32px, 4vw, 52px) !important;
}
.page-id-96 .elementor-element-ybtgjr1b > .e-con-inner {
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.page-id-96 .elementor-element-w1h0m5r7 blockquote {
  margin: 0;
  padding: 22px 0 22px 26px;
  border-left: 3px solid var(--fabe-accent);
}

/* About */
.page-id-97 .elementor-element-giah87c2 > .e-con-inner,
.page-id-97 .elementor-element-cfv7w0my {
  align-items: flex-start !important;
  gap: clamp(40px, 6vw, 80px) !important;
}
.page-id-97 .elementor-element-fguowxdh,
.page-id-97 .elementor-element-vsl76b9b { max-width: var(--fabe-reading); }
.page-id-97 .elementor-element-vsl76b9b blockquote {
  margin: 28px 0;
  padding: 24px 26px;
  border-left: 3px solid var(--fabe-accent);
  background: var(--fabe-surface);
}
.page-id-97 .elementor-element-jbxnpoja { margin-top: clamp(40px, 6vw, 76px); }
.page-id-97 .elementor-element-jbxnpoja img { border-radius: 8px; }

/* Artwork catalog */
.page-id-98 .elementor-element-bb9jjw4j {
  padding-bottom: clamp(36px, 4vw, 56px) !important;
  background: linear-gradient(180deg,#fff 0%,var(--fabe-surface) 100%);
}
.page-id-98 .elementor-element-x6f3gspb {
  padding-top: clamp(36px, 4vw, 56px) !important;
}
.page-id-98 .elementor-element-gken4io6,
.page-id-98 .elementor-element-gv1rp0k6,
.page-id-98 .elementor-element-xgqbx7dc,
.page-id-98 .elementor-element-yu8rbtba {
  --container-widget-width: min(780px, 100%) !important;
}
.page-id-98 .elementor-element-yu8rbtba { margin-bottom: 28px; }
.page-id-98 .elementor-element-1oznusbi .e-gallery-image {
  background-color: #ece9e3;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(27,27,26,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.page-id-98 .elementor-element-1oznusbi .e-gallery-item:hover .e-gallery-image,
.page-id-98 .elementor-element-1oznusbi .e-gallery-item:focus-visible .e-gallery-image {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(27,27,26,.14);
}

/* Contact */
.page-id-99 .elementor-element-xa4q8bb5 {
  min-height: 380px;
  background-color: rgba(12,21,24,.38) !important;
  background-blend-mode: multiply;
}
.page-id-99 .elementor-element-54qa4qfc,
.page-id-99 .elementor-element-8cofw9oi { text-shadow: 0 2px 14px rgba(0,0,0,.48); }
.page-id-99 .elementor-element-18oj3xqr { padding-top: clamp(56px, 6vw, 80px) !important; }
.page-id-99 .elementor-element-9bcmgr9e {
  align-items: center !important;
  text-align: center;
}
.page-id-99 .elementor-element-9bcmgr9e > .elementor-widget {
  --container-widget-width: min(760px, 100%) !important;
}
.page-id-99 .elementor-element-9bcmgr9e :is(h1,h2,h3,h4,h5,p) { text-align: center !important; }
.page-id-99 .elementor-element-apcz3w3x { margin-top: 32px !important; }
.page-id-99 .fabe-contact-wrap { max-width: 720px; }
.page-id-99 .fabe-contact-field input,
.page-id-99 .fabe-contact-field textarea { border-color: #9d9a94; }
.page-id-99 .fabe-contact-submit {
  background: var(--fabe-accent) !important;
  border-color: var(--fabe-accent) !important;
  min-height: 48px;
}

/* Legal pages */
:is(.page-id-100,.page-id-101) :is(.elementor-element-7tcxethj,.elementor-element-urmpr4nc) {
  padding-bottom: 28px !important;
  background: var(--fabe-surface);
}
:is(.page-id-100,.page-id-101) :is(.elementor-element-z98pjkzs,.elementor-element-15qqf5h6) {
  padding-top: 36px !important;
}
:is(.page-id-100,.page-id-101) :is(.elementor-element-lbzmfh76,.elementor-element-vp9tv9tk) {
  --container-widget-width: min(860px, 100%) !important;
  width: 100% !important;
}
:is(.page-id-100,.page-id-101) .elementor-widget-text-editor :is(h2,h3) {
  margin-top: 2.1em;
  margin-bottom: .65em;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  line-height: 1.2;
}
:is(.page-id-100,.page-id-101) .elementor-widget-text-editor :is(ul,ol) {
  padding-inline-start: 1.35em;
}
:is(.page-id-100,.page-id-101) .elementor-widget-text-editor li + li { margin-top: .55em; }

/* Public portfolio project pages */
:is(.page-id-102,.page-id-103,.page-id-104,.page-id-105) .twbb_section {
  padding-top: clamp(48px, 5vw, 68px) !important;
  padding-bottom: clamp(48px, 5vw, 68px) !important;
}
:is(.page-id-102,.page-id-103,.page-id-104,.page-id-105) .elementor-widget-image img {
  border-radius: 8px;
}
:is(.page-id-102,.page-id-103,.page-id-104,.page-id-105) .elementor-widget-divider { margin-block: 18px !important; }
:is(.page-id-102,.page-id-103,.page-id-104,.page-id-105) .elementor-icon-list-items { gap: 10px; }

@media (max-width: 767px) {
  html { scroll-padding-top: 76px; }
  .elementor-114 .elementor-element-11xav75u,
  .elementor-117 .elementor-element-53m123oc {
    padding: 9px 18px !important;
  }
  .elementor-114 .elementor-element-11xav75u > .e-con-inner,
  .elementor-117 .elementor-element-53m123oc > .e-con-inner {
    width: 100%;
    display: flex !important;
    flex-flow: row nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
  }
  .elementor-114 :is(.elementor-element-rf5y6zlf,.elementor-widget-image),
  .elementor-117 :is(.elementor-element-7q2n78w7,.elementor-widget-image) {
    width: auto !important;
    max-width: calc(100vw - 92px);
    flex: 0 1 auto !important;
    --container-widget-width: auto !important;
    margin: 0 !important;
  }
  .elementor-114 .elementor-widget-image img,
  .elementor-117 .elementor-widget-image img {
    max-width: min(250px, calc(100vw - 100px));
    margin: 0 !important;
  }
  .elementor-114 .elementor-widget-twbb-nav-menu,
  .elementor-117 .elementor-widget-twbb-nav-menu {
    width: auto !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    --container-widget-width: auto !important;
  }
  .elementor-114 .twbb-menu-toggle,
  .elementor-117 .twbb-menu-toggle {
    min-width: 44px;
    min-height: 44px;
    margin: 0 !important;
    display: inline-grid !important;
    place-items: center;
  }
  .elementor-114 .twbb-nav-menu--dropdown,
  .elementor-117 .twbb-nav-menu--dropdown {
    border-top: 1px solid var(--fabe-line);
    box-shadow: 0 12px 24px rgba(0,0,0,.1);
  }

  :is(.elementor-96,.elementor-97,.elementor-98,.elementor-99,.elementor-100,.elementor-101,.elementor-102,.elementor-103,.elementor-104,.elementor-105) > .twbb_section {
    padding: 44px 20px !important;
  }
  :is(.elementor-96,.elementor-97,.elementor-98,.elementor-99,.elementor-100,.elementor-101,.elementor-102,.elementor-103,.elementor-104,.elementor-105) > .twbb_section > .e-con-inner {
    width: 100%;
  }

  .page-id-96 .elementor-element-ucnec4sl { padding-top: 58px !important; }
  .page-id-96 .elementor-element-x0rx82zc { margin-top: 30px; }
  .page-id-96 .elementor-element-x0rx82zc img { max-height: none; object-fit: contain; }
  .page-id-96 .elementor-element-ah6p1hwt > .e-con-inner,
  .page-id-96 .elementor-element-ybtgjr1b > .e-con-inner {
    gap: 32px !important;
  }
  .page-id-96 :is(.elementor-element-cde1x1ck,.elementor-element-w1h0m5r7),
  .page-id-97 :is(.elementor-element-fguowxdh,.elementor-element-vsl76b9b),
  :is(.page-id-100,.page-id-101) :is(.elementor-element-lbzmfh76,.elementor-element-vp9tv9tk),
  :is(.page-id-102,.page-id-103,.page-id-104,.page-id-105) .elementor-widget-text-editor {
    text-align: left !important;
  }
  .page-id-96 :is(.elementor-element-cde1x1ck,.elementor-element-w1h0m5r7) *,
  .page-id-97 :is(.elementor-element-fguowxdh,.elementor-element-vsl76b9b) *,
  :is(.page-id-100,.page-id-101) :is(.elementor-element-lbzmfh76,.elementor-element-vp9tv9tk) *,
  :is(.page-id-102,.page-id-103,.page-id-104,.page-id-105) .elementor-widget-text-editor * {
    text-align: left !important;
  }
  .page-id-96 :is(.elementor-element-cde1x1ck,.elementor-element-w1h0m5r7) :is(ul,ol),
  .page-id-97 :is(.elementor-element-fguowxdh,.elementor-element-vsl76b9b) :is(ul,ol) {
    padding-inline-start: 1.25em;
  }
  .page-id-97 .elementor-element-giah87c2 > .e-con-inner,
  .page-id-97 .elementor-element-cfv7w0my { gap: 32px !important; }
  .page-id-98 .elementor-element-bb9jjw4j { padding-bottom: 36px !important; }
  .page-id-98 .elementor-element-x6f3gspb { padding-top: 38px !important; }
  .page-id-99 .elementor-element-xa4q8bb5 {
    min-height: 330px;
    padding-block: 54px !important;
  }
  .page-id-99 .elementor-element-18oj3xqr { padding-top: 44px !important; }
  .page-id-99 .elementor-element-apcz3w3x { margin-top: 26px !important; }
  :is(.page-id-100,.page-id-101) .elementor-widget-text-editor :is(h2,h3) {
    font-size: clamp(1.35rem, 6vw, 1.7rem);
  }
  :is(.page-id-100,.page-id-101) .elementor-widget-text-editor :is(ul,ol) {
    padding-inline-start: 1.2em;
  }
  .elementor-115 .elementor-element-swpff2hc {
    padding: 34px 20px 28px !important;
  }
}

@media (max-width: 430px) {
  .elementor-widget-heading h1 { font-size: clamp(2.25rem, 11vw, 3.25rem) !important; line-height: 1.08 !important; }
  .elementor-widget-heading h2 { font-size: clamp(1.85rem, 8vw, 2.5rem) !important; line-height: 1.12 !important; }
  .elementor-widget-heading h3 { font-size: clamp(1.45rem, 6.5vw, 2rem) !important; line-height: 1.15 !important; }
  .elementor-widget-text-editor { font-size: 1rem; }
}

/* Guard shared templates from page-section spacing rules. */
body .elementor-114 .elementor-element-11xav75u,
body .elementor-117 .elementor-element-53m123oc {
  padding: 12px 0 !important;
  min-height: 0 !important;
}
body .elementor-115 .elementor-element-swpff2hc {
  padding: 44px clamp(20px, 5vw, 72px) 36px !important;
  min-height: 0 !important;
}

@media (max-width: 767px) {
  body .elementor-114 .elementor-element-11xav75u,
  body .elementor-117 .elementor-element-53m123oc {
    padding: 9px 18px !important;
  }
  body .elementor-115 .elementor-element-swpff2hc {
    padding: 34px 20px 28px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .elementor-invisible { visibility: visible !important; }
}
