:root {
  --shl-ink: #140b06;
  --shl-brown: #2a140d;
  --shl-panel: #3b2117;
  --shl-copper: #b76436;
  --shl-orange: #f2b45a;
  --shl-orange-hover: #ffd18a;
  --shl-parchment: #f3ecdf;
  --shl-white: #ffffff;
  --shl-border: rgba(64, 35, 22, 0.18);
  --shl-shadow: 0 18px 45px rgba(47, 24, 14, 0.08);
  --shl-shell: 1328px;
  --shl-gutter: clamp(18px, 4vw, 56px);
  --shl-panel-pad: clamp(28px, 4vw, 54px);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--shl-ink);
  background: var(--shl-parchment);
  font-family: Inter, Montserrat, "Segoe UI", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}

body,
p,
li,
a,
span,
h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-button {
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

a { color: var(--shl-copper); text-underline-offset: 0.2em; }
a:hover, a:focus-visible { color: #8f4528; }
img { display: block; max-width: 100%; height: auto; }

.screen-reader-text,
.shl-skip-link:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.shl-skip-link:focus {
  position: fixed;
  z-index: 99999;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  color: var(--shl-ink);
  background: var(--shl-orange);
}

.shl-site-header {
  position: relative;
  z-index: 50;
  background: #120905;
  border-bottom: 1px solid rgba(242, 180, 90, 0.22);
}

.shl-header-shell {
  width: min(calc(100% - 2 * var(--shl-gutter)), var(--shl-shell));
  min-height: 94px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.shl-brand { display: block; flex: 0 1 360px; }
.shl-brand img,
.shl-brand .custom-logo { width: min(100%, 350px); max-height: 76px; object-fit: contain; object-position: left center; }
.shl-brand .custom-logo-link { display: block; }

.shl-primary-nav { margin-left: auto; }
.shl-menu { display: flex; align-items: center; gap: clamp(18px, 2.5vw, 34px); margin: 0; padding: 0; list-style: none; }
.shl-menu a { color: var(--shl-white); font-size: 15px; font-weight: 750; text-decoration: none; }
.shl-menu a:hover, .shl-menu a:focus-visible, .shl-menu .current-menu-item > a { color: var(--shl-orange); }
.shl-menu .shl-menu-cta > a,
.shl-menu li:last-child > a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  padding: 0 23px;
  border-radius: 999px;
  color: var(--shl-ink);
  background: var(--shl-orange);
}
.shl-menu .shl-menu-cta > a:hover,
.shl-menu li:last-child > a:hover { color: var(--shl-ink); background: var(--shl-orange-hover); }

.shl-nav-toggle { display: none; width: 46px; height: 42px; padding: 9px; border: 1px solid rgba(255,255,255,.35); border-radius: 8px; background: transparent; }
.shl-nav-toggle span:not(.screen-reader-text) { display: block; width: 100%; height: 2px; margin: 5px 0; background: var(--shl-white); }

.shl-site-main { min-height: 55vh; overflow: hidden; }
.shl-elementor-page .shl-site-main,
.elementor-page .shl-site-main { padding: 0; }

.elementor,
.elementor-widget-text-editor,
.elementor-heading-title,
.elementor-button { font-family: inherit !important; }

.elementor-widget:not(:last-child) { margin-bottom: 0; }
.elementor-widget-text-editor p { margin: 0 0 1em; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-heading-title { color: inherit !important; line-height: 1.08 !important; }

.shl-shell {
  width: min(calc(100% - 2 * var(--shl-gutter)), var(--shl-shell)) !important;
  max-width: var(--shl-shell) !important;
  margin-inline: auto !important;
}

.shl-hero {
  position: relative;
  min-height: clamp(520px, 62vw, 720px);
  justify-content: center;
  background-color: var(--shl-ink);
  background-position: center right;
  background-repeat: no-repeat;
  background-size: cover;
  isolation: isolate;
}

.shl-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(15,7,4,.98) 0%, rgba(20,9,5,.88) 35%, rgba(20,9,5,.28) 72%, rgba(20,9,5,.14) 100%);
}

.shl-hero-copy {
  min-height: inherit;
  justify-content: center;
  align-items: flex-start;
  padding-block: clamp(72px, 9vw, 122px);
}

.shl-hero-copy > .elementor-element { width: min(720px, 100%); }
.shl-hero-title .elementor-heading-title {
  margin: 12px 0 22px;
  color: var(--shl-white) !important;
  font-size: clamp(46px, 5.7vw, 82px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em;
}
.shl-hero-text { color: var(--shl-white) !important; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.55; }
.shl-hero-text p { color: inherit !important; }

.shl-kicker .elementor-heading-title,
.shl-kicker {
  color: var(--shl-copper) !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.shl-hero .shl-kicker .elementor-heading-title { color: var(--shl-orange) !important; }

.shl-actions { width: auto !important; margin-top: 30px; gap: 14px; align-items: center; }
.shl-actions > .elementor-element { width: auto !important; }
.elementor .elementor-button,
.shl-button,
.shl-form-submit {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 14px 24px !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--shl-ink) !important;
  background: var(--shl-orange) !important;
  box-shadow: none !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.elementor .elementor-button:hover,
.elementor .elementor-button:focus-visible,
.shl-button:hover,
.shl-form-submit:hover { color: var(--shl-ink) !important; background: var(--shl-orange-hover) !important; transform: translateY(-1px); }
.shl-button-secondary .elementor-button { color: var(--shl-white) !important; background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.55) !important; }
.shl-button-secondary .elementor-button:hover { color: var(--shl-ink) !important; background: var(--shl-orange-hover) !important; border-color: var(--shl-orange-hover) !important; }

.shl-trust-band {
  position: relative;
  z-index: 2;
  margin-top: -32px !important;
  padding: 26px 42px;
  border: 1px solid var(--shl-border);
  border-radius: 30px;
  background: var(--shl-white);
  box-shadow: var(--shl-shadow);
  justify-content: space-between;
  gap: 18px;
}
.shl-trust-band > .elementor-element { flex: 1 1 220px; }
.shl-trust-band .elementor-heading-title { color: #6d3423 !important; font-size: 13px !important; font-weight: 850 !important; text-transform: uppercase; letter-spacing: .04em; }

.shl-section { padding-block: clamp(18px, 2.7vw, 34px); background: var(--shl-parchment); }
.shl-section .shl-panel {
  padding: var(--shl-panel-pad);
  border: 1px solid var(--shl-border);
  border-radius: clamp(22px, 2.2vw, 34px);
  background: var(--shl-white);
  box-shadow: var(--shl-shadow);
}
.shl-section-title .elementor-heading-title {
  max-width: 1050px;
  margin: 10px 0 14px;
  color: var(--shl-ink) !important;
  font-size: clamp(36px, 4vw, 58px) !important;
  font-weight: 820 !important;
  letter-spacing: -.03em;
}
.shl-section-lede { max-width: 940px; color: #3d2a21; font-size: 18px; }

.shl-card-grid { margin-top: clamp(28px, 4vw, 48px); gap: 20px; align-items: stretch; }
.shl-card-grid > .shl-card { flex: 1 1 calc(33.333% - 20px); min-width: 250px; }
.shl-card-grid.shl-grid-two > .shl-card { flex-basis: calc(50% - 12px); }
.shl-card-grid.shl-grid-four > .shl-card { flex-basis: calc(25% - 20px); min-width: 220px; }
.shl-card {
  padding: clamp(22px, 2.4vw, 32px);
  border: 1px solid var(--shl-border);
  border-radius: 22px;
  background: #fbf8f2;
}
.shl-card-label .elementor-heading-title { color: var(--shl-copper) !important; font-size: 13px !important; font-weight: 850 !important; letter-spacing: .055em; text-transform: uppercase; }
.shl-card-title .elementor-heading-title { margin: 10px 0 12px; color: var(--shl-ink) !important; font-size: clamp(23px, 2.1vw, 31px) !important; font-weight: 790 !important; }
.shl-card-body { color: #47342b; }

.shl-dark .shl-panel { color: var(--shl-white); border-color: rgba(242,180,90,.22); background: var(--shl-brown); box-shadow: none; }
.shl-dark .shl-section-title .elementor-heading-title,
.shl-dark .shl-card-title .elementor-heading-title,
.shl-dark .elementor-widget-text-editor,
.shl-dark .elementor-widget-text-editor p { color: var(--shl-white) !important; }
.shl-dark .shl-section-lede { color: rgba(255,255,255,.82) !important; }
.shl-dark .shl-kicker .elementor-heading-title,
.shl-dark .shl-card-label .elementor-heading-title { color: var(--shl-orange) !important; }
.shl-dark .shl-card { color: var(--shl-white); border-color: rgba(242,180,90,.24); background: var(--shl-panel); }
.shl-dark .shl-card-body { color: rgba(255,255,255,.82); }

.shl-art-band {
  position: relative;
  width: min(calc(100% - 2 * var(--shl-gutter)), var(--shl-shell)) !important;
  min-height: clamp(330px, 38vw, 490px);
  margin: clamp(18px, 2.7vw, 34px) auto !important;
  overflow: hidden;
  justify-content: center;
  border-radius: clamp(22px, 2.2vw, 34px);
  color: var(--shl-white);
  background-color: var(--shl-ink);
  background-position: center right;
  background-size: cover;
  isolation: isolate;
}
.shl-art-band::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(17,8,4,.98) 0%, rgba(17,8,4,.89) 39%, rgba(17,8,4,.23) 78%, rgba(17,8,4,.08) 100%); }
.shl-art-copy { width: 100% !important; max-width: none !important; padding: var(--shl-panel-pad); align-items: flex-start; }
.shl-art-copy > .elementor-element { width: min(690px, 100%); }
.shl-art-band .shl-section-title .elementor-heading-title,
.shl-art-band .elementor-widget-text-editor,
.shl-art-band .elementor-widget-text-editor p { color: var(--shl-white) !important; }
.shl-art-band .shl-kicker .elementor-heading-title { color: var(--shl-orange) !important; }

.shl-image-grid { margin-top: 30px; gap: 18px; align-items: stretch; }
.shl-image-grid > .elementor-widget-image { flex: 1 1 calc(33.333% - 18px); min-width: 260px; }
.shl-image-grid .elementor-widget-container { height: 100%; overflow: hidden; border-radius: 20px; background: var(--shl-brown); }
.shl-image-grid img { width: 100%; height: clamp(240px, 25vw, 370px); object-fit: cover; }
.shl-image-grid-six > .elementor-widget-image { flex-basis: calc(33.333% - 18px); }

.shl-contact-details { margin-top: 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.shl-contact-details p { padding: 22px; border: 1px solid var(--shl-border); border-radius: 18px; background: #fbf8f2; }
.shl-contact-details a { color: #7c3c24; font-weight: 750; }
.shl-form-widget { margin-top: 28px; }
.shl-contact-form { color: var(--shl-white); }
.shl-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.shl-contact-form p { margin: 0 0 20px; }
.shl-contact-form label { display: block; margin-bottom: 8px; color: var(--shl-white); font-size: 15px; font-weight: 750; }
.shl-contact-form input[type="text"],
.shl-contact-form input[type="email"],
.shl-contact-form input[type="tel"],
.shl-contact-form select,
.shl-contact-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 13px 15px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 10px;
  color: var(--shl-ink);
  background: var(--shl-white);
  font: inherit;
}
.shl-contact-form textarea { min-height: 170px; resize: vertical; }
.shl-contact-form input:focus,
.shl-contact-form select:focus,
.shl-contact-form textarea:focus { outline: 3px solid rgba(242,180,90,.48); border-color: var(--shl-orange); }
.shl-consent label { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; }
.shl-consent input { margin-top: 6px; }
.shl-honeypot { position: absolute !important; left: -9999px !important; }
.shl-form-note { color: rgba(255,255,255,.72); font-size: 14px; }
.shl-form-message { margin-bottom: 24px; padding: 16px 18px; border-radius: 10px; font-weight: 700; }
.shl-form-success { color: var(--shl-ink); background: var(--shl-orange-hover); }
.shl-form-error { color: #7c1717; background: #ffe6e6; }

.shl-basic-page {
  width: min(calc(100% - 2 * var(--shl-gutter)), 1000px);
  margin: clamp(48px, 8vw, 100px) auto;
  padding: var(--shl-panel-pad);
  border: 1px solid var(--shl-border);
  border-radius: 28px;
  background: var(--shl-white);
}
.shl-basic-page h1 { font-size: clamp(40px, 5vw, 66px); line-height: 1.05; }

.shl-fallback-hero { min-height: 620px; display: grid; place-items: center; color: var(--shl-white); background: linear-gradient(90deg, rgba(15,7,4,.96), rgba(15,7,4,.25)), url('../images/art-community-1600.webp') center/cover no-repeat; }
.shl-fallback-hero > div { width: min(calc(100% - 2 * var(--shl-gutter)), var(--shl-shell)); }
.shl-fallback-hero h1 { max-width: 760px; margin: 10px 0 20px; font-size: clamp(48px, 6vw, 82px); line-height: 1.04; }
.shl-fallback-hero p:not(.shl-kicker) { max-width: 720px; }

.shl-site-footer { color: var(--shl-white); background: #120905; }
.shl-footer-shell { width: min(calc(100% - 2 * var(--shl-gutter)), var(--shl-shell)); margin: 0 auto; padding-block: 68px; display: grid; grid-template-columns: 1.5fr .8fr 1fr; gap: 60px; }
.shl-footer-brand img { width: min(230px, 100%); margin-bottom: 22px; }
.shl-site-footer h2 { margin: 0 0 18px; color: var(--shl-orange); font-size: 14px; letter-spacing: .07em; text-transform: uppercase; }
.shl-site-footer p { color: rgba(255,255,255,.8); }
.shl-site-footer a { color: var(--shl-white); text-decoration: none; }
.shl-site-footer a:hover { color: var(--shl-orange); }
.shl-footer-menu { margin: 0; padding: 0; list-style: none; }
.shl-footer-menu li { margin: 0 0 9px; }
.shl-footer-bottom { width: min(calc(100% - 2 * var(--shl-gutter)), var(--shl-shell)); margin: 0 auto; padding: 20px 0 30px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.68); font-size: 14px; }

@media (max-width: 1024px) {
  :root { --shl-gutter: 32px; --shl-panel-pad: 34px; }
  .shl-header-shell { min-height: 88px; }
  .shl-brand { flex-basis: 300px; }
  .shl-menu { gap: 18px; }
  .shl-menu a { font-size: 14px; }
  .shl-card-grid.shl-grid-four > .shl-card { flex-basis: calc(50% - 12px); }
  .shl-footer-shell { grid-template-columns: 1.3fr .7fr 1fr; gap: 36px; }
}

@media (max-width: 767px) {
  :root { --shl-gutter: 16px; --shl-panel-pad: 22px; }
  body { font-size: 16px; line-height: 1.58; }
  .shl-header-shell { min-height: 78px; }
  .shl-brand { flex-basis: 246px; }
  .shl-brand img, .shl-brand .custom-logo { max-height: 60px; }
  .shl-nav-toggle { display: block; flex: 0 0 46px; }
  .shl-primary-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 14px var(--shl-gutter) 22px; background: #120905; border-top: 1px solid rgba(255,255,255,.12); }
  .shl-primary-nav.is-open { display: block; }
  .shl-menu { display: block; }
  .shl-menu li { border-bottom: 1px solid rgba(255,255,255,.12); }
  .shl-menu a { display: block; padding: 14px 4px; }
  .shl-menu .shl-menu-cta > a, .shl-menu li:last-child > a { display: flex; margin-top: 14px; justify-content: center; }
  .shl-hero { min-height: 610px; background-position: 62% center; }
  .shl-hero::before { background: linear-gradient(180deg, rgba(14,6,3,.42) 0%, rgba(14,6,3,.62) 35%, rgba(14,6,3,.97) 100%); }
  .shl-hero-copy { justify-content: flex-end; padding-top: 210px; padding-bottom: 52px; }
  .shl-hero-title .elementor-heading-title { margin-top: 10px; font-size: clamp(39px, 12vw, 52px) !important; letter-spacing: -.028em; }
  .shl-hero-text { font-size: 16px; }
  .shl-actions { width: 100% !important; flex-direction: column !important; align-items: stretch !important; }
  .shl-actions > .elementor-element, .shl-actions .elementor-button-wrapper, .shl-actions .elementor-button { width: 100% !important; }
  .shl-trust-band { margin-top: 14px !important; padding: 15px 18px; border-radius: 20px; flex-direction: column !important; gap: 0; }
  .shl-trust-band > .elementor-element { width: 100% !important; flex: 0 0 auto; padding: 9px 0; border-bottom: 1px solid var(--shl-border); }
  .shl-trust-band > .elementor-element:last-child { border-bottom: 0; }
  .shl-section { padding-block: 8px; }
  .shl-section .shl-panel { border-radius: 22px; }
  .shl-section-title .elementor-heading-title { font-size: clamp(34px, 10vw, 45px) !important; }
  .shl-section-lede { font-size: 16px; }
  .shl-card-grid { flex-direction: column !important; gap: 12px; margin-top: 24px; }
  .shl-card-grid > .shl-card,
  .shl-card-grid.shl-grid-two > .shl-card,
  .shl-card-grid.shl-grid-four > .shl-card { width: 100% !important; min-width: 0; flex-basis: auto; }
  .shl-card { padding: 20px; border-radius: 17px; }
  .shl-card-title .elementor-heading-title { font-size: 24px !important; }
  .shl-art-band { min-height: 410px; background-position: 68% center; }
  .shl-art-band::before { background: linear-gradient(180deg, rgba(17,8,4,.32), rgba(17,8,4,.95) 72%); }
  .shl-art-copy { justify-content: flex-end; min-height: inherit; padding-top: 190px; }
  .shl-image-grid { flex-direction: column !important; gap: 12px; }
  .shl-image-grid > .elementor-widget-image { width: 100% !important; min-width: 0; flex-basis: auto; }
  .shl-image-grid img { height: 250px; }
  .shl-contact-details, .shl-form-grid { grid-template-columns: 1fr; }
  .shl-footer-shell { grid-template-columns: 1fr; gap: 30px; padding-block: 48px; }
  .shl-footer-bottom { flex-direction: column; }
}

@media (max-width: 390px) {
  .shl-brand { flex-basis: 215px; }
  .shl-hero-title .elementor-heading-title { font-size: 38px !important; }
  .shl-section-title .elementor-heading-title { font-size: 34px !important; }
  .shl-card-title .elementor-heading-title { font-size: 22px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

