/*
 * Shannan Group — Signature 10 · Foundation
 * Design tokens (light + dark), base elements, typography, buttons and the
 * Elementor bridge. Every colour/size used by the other stylesheets is a token
 * declared here, and the admin page «المظهر ← تصميم شنّان» feeds these tokens.
 */

/* ------------------------------------------------------------------ */
/* 0. Self-hosted fonts (SIL OFL — see assets/fonts/OFL-*.txt)         */
/*    Also registered in theme.json for the Site Editor font picker.    */
/* ------------------------------------------------------------------ */
@font-face { font-family: "Readex Pro"; font-style: normal; font-weight: 160 700; font-display: swap; src: url("../fonts/readex-pro-160-700-arabic.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: "Readex Pro"; font-style: normal; font-weight: 160 700; font-display: swap; src: url("../fonts/readex-pro-160-700-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-400-arabic.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-400-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-500-arabic.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-500-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-700-arabic.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-700-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ------------------------------------------------------------------ */
/* 1. Tokens                                                           */
/* ------------------------------------------------------------------ */
:root {
  /* Brand palette (admin overrides: --sg-brand-*) */
  --sg-forest: var(--sg-brand-primary, #0f4a34);
  --sg-forest-deep: color-mix(in oklab, var(--sg-forest) 72%, #000);
  --sg-forest-ink: color-mix(in oklab, var(--sg-forest) 42%, #000);
  --sg-forest-bright: color-mix(in oklab, var(--sg-forest) 70%, #6fbf8f);
  --sg-gold: var(--sg-brand-accent, #c4954a);
  --sg-gold-light: color-mix(in oklab, var(--sg-gold) 52%, #fff6e2);
  --sg-gold-deep: color-mix(in oklab, var(--sg-gold) 64%, #2f1f05);
  /* Gold used for large headline words on light surfaces (keeps ≥3:1 contrast). */
  --sg-gold-display: color-mix(in oklab, var(--sg-gold) 78%, #3a2606);
  --sg-leaf: var(--sg-brand-leaf, #7fa35a);
  --sg-orange: var(--sg-gold); /* legacy alias used by older content */

  /* Neutrals */
  --sg-paper: var(--sg-brand-paper, #f7f5ef);
  --sg-surface: var(--sg-brand-surface, #efede5);
  --sg-surface-soft: color-mix(in oklab, var(--sg-surface) 55%, var(--sg-paper));
  --sg-card: var(--sg-brand-card, #fffefb);
  --sg-card-raised: var(--sg-card);
  --sg-ink: var(--sg-brand-ink, #13241c);
  --sg-muted: var(--sg-brand-muted, #56665d);
  --sg-heading: var(--sg-forest);
  --sg-accent-text: var(--sg-gold-deep);
  --sg-border: var(--sg-brand-border, color-mix(in srgb, var(--sg-forest) 13%, transparent));
  --sg-border-strong: color-mix(in srgb, var(--sg-forest) 24%, transparent);
  --sg-tint: color-mix(in srgb, var(--sg-leaf) 12%, transparent);
  --sg-tint-gold: color-mix(in srgb, var(--sg-gold) 12%, transparent);
  --sg-on-dark: #f3f7f3;
  --sg-on-dark-muted: rgba(243, 247, 243, .74);
  --sg-on-dark-border: rgba(243, 247, 243, .16);

  /* Buttons */
  --sg-btn-bg: var(--sg-forest);
  --sg-btn-bg-hover: var(--sg-forest-deep);
  --sg-btn-text: #fff;

  /* Dark band surfaces (CTA, principles, footer) */
  --sg-band: var(--sg-forest-deep);
  --sg-band-2: var(--sg-forest);
  --sg-footer-bg: var(--sg-footer-background, #0a2a1e);
  --sg-footer-fg: var(--sg-footer-text, rgba(243, 247, 243, .76));

  /* Typography */
  --sg-font-heading: "Readex Pro", "IBM Plex Sans Arabic", Tajawal, "Noto Sans Arabic", Tahoma, Arial, sans-serif;
  --sg-font-body: "IBM Plex Sans Arabic", "Readex Pro", Tajawal, "Noto Sans Arabic", Tahoma, Arial, sans-serif;
  --sg-text-xs: .78rem;
  --sg-text-sm: .9rem;
  --sg-text-base: 1.0625rem;
  --sg-text-lg: clamp(1.06rem, .98rem + .32vw, 1.2rem);
  --sg-h1: clamp(2.3rem, 1.35rem + 3.7vw, 4.35rem);
  --sg-h2: clamp(1.75rem, 1.2rem + 2.1vw, 2.9rem);
  --sg-h3: clamp(1.14rem, 1.04rem + .42vw, 1.38rem);
  --sg-leading: 1.85;
  --sg-leading-tight: 1.3;

  /* Layout */
  --sg-container: var(--sg-content-width, 1200px);
  --sg-gutter: clamp(16px, 4vw, 40px);
  --sg-section-y: clamp(calc(var(--sg-section-space, 72px) * .72), 8vw, calc(var(--sg-section-space, 72px) * 1.36));
  --sg-header-offset: 96px;

  /* Shape */
  --sg-radius: var(--sg-card-radius, 22px);
  --sg-radius-sm: var(--sg-small-radius, 12px);
  --sg-radius-lg: calc(var(--sg-radius) + 8px);
  --sg-radius-btn: var(--sg-button-radius, 12px);
  --sg-radius-small: var(--sg-radius-sm); /* legacy */

  /* Elevation */
  --sg-shadow-xs: 0 1px 2px rgba(9, 38, 26, .06);
  --sg-shadow-sm: 0 1px 2px rgba(9, 38, 26, .05), 0 10px 24px -14px rgba(9, 38, 26, .18);
  --sg-shadow-md: 0 2px 4px rgba(9, 38, 26, .04), 0 22px 46px -22px rgba(9, 38, 26, .26);
  --sg-shadow-lg: 0 4px 10px rgba(9, 38, 26, .05), 0 36px 80px -30px rgba(9, 38, 26, .38);
  --sg-shadow-gold: 0 16px 36px -16px color-mix(in srgb, var(--sg-gold) 70%, transparent);
  --sg-shadow: var(--sg-shadow-md);
  --sg-shadow-hover: var(--sg-shadow-lg);
  --sg-shadow-soft: var(--sg-shadow-sm);
  --sg-shadow-strong: var(--sg-shadow-lg);
  --sg-shadow-deep: var(--sg-shadow-lg);

  /* Motion */
  --sg-ease: cubic-bezier(.22, 1, .36, 1);
  --sg-ease-out: cubic-bezier(.16, 1, .3, 1);
  --sg-ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --sg-speed: var(--sg-transition-speed, 240ms);
  --sg-transition: var(--sg-speed) var(--sg-ease);
  --sg-lift: calc(var(--sg-hover-lift, 6px) * -1);

  color-scheme: light;
}

:root[data-theme="dark"] {
  --sg-paper: #07120d;
  --sg-surface: #0c1a13;
  --sg-surface-soft: #0a1611;
  --sg-card: #10221a;
  --sg-card-raised: #142a20;
  --sg-ink: #e7efe9;
  --sg-muted: #a3b5aa;
  --sg-heading: #f1f6f2;
  --sg-accent-text: var(--sg-gold-light);
  --sg-gold-display: var(--sg-gold);
  --sg-border: rgba(214, 233, 221, .1);
  --sg-border-strong: rgba(214, 233, 221, .2);
  --sg-tint: rgba(127, 163, 90, .12);
  --sg-tint-gold: color-mix(in srgb, var(--sg-gold) 16%, transparent);
  --sg-btn-bg: color-mix(in oklab, var(--sg-forest) 74%, #5cb487);
  --sg-btn-bg-hover: color-mix(in oklab, var(--sg-forest) 60%, #6cc497);
  --sg-btn-text: #fff;
  --sg-band: #0b1d15;
  --sg-band-2: #0f2a1e;
  --sg-footer-bg: var(--sg-footer-background, #050e0a);
  --sg-shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);
  --sg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .28), 0 12px 26px -14px rgba(0, 0, 0, .6);
  --sg-shadow-md: 0 2px 4px rgba(0, 0, 0, .25), 0 24px 50px -22px rgba(0, 0, 0, .7);
  --sg-shadow-lg: 0 4px 12px rgba(0, 0, 0, .3), 0 38px 84px -30px rgba(0, 0, 0, .8);
  --sg-shadow-gold: 0 16px 40px -18px color-mix(in srgb, var(--sg-gold) 55%, transparent);
  /* Keep WordPress colour presets readable in dark mode. */
  --wp--preset--color--paper: var(--sg-paper);
  --wp--preset--color--surface: var(--sg-surface);
  --wp--preset--color--ink: var(--sg-ink);
  --wp--preset--color--muted: var(--sg-muted);
  color-scheme: dark;
}

/* ------------------------------------------------------------------ */
/* 2. Base elements                                                    */
/* ------------------------------------------------------------------ */
html {
  direction: rtl;
  scroll-behavior: smooth;
  scroll-padding-top: var(--sg-header-offset);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}
body {
  direction: rtl;
  margin: 0;
  min-height: 100vh;
  overflow-x: clip;
  color: var(--sg-ink);
  background-color: var(--sg-paper);
  font-family: var(--sg-font-body);
  font-size: var(--sg-text-base);
  line-height: var(--sg-leading);
  font-synthesis-weight: none;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  transition: background-color 420ms var(--sg-ease), color 420ms var(--sg-ease);
}
body.sg-bg-mesh {
  background-image:
    radial-gradient(1100px 560px at 100% -8%, color-mix(in srgb, var(--sg-gold) 7%, transparent), transparent 62%),
    radial-gradient(900px 520px at -12% 28%, color-mix(in srgb, var(--sg-leaf) 7%, transparent), transparent 64%);
  background-repeat: no-repeat;
}
body.sg-bg-gradient {
  background-image: linear-gradient(180deg, var(--sg-paper), var(--sg-surface-soft) 60%, var(--sg-paper));
}
body.sg-bg-plain { background-image: none; }

body, button, input, select, textarea { font-family: var(--sg-font-body); }
button, input, select, textarea { font: inherit; color: inherit; }
img, video, iframe, svg { max-width: 100%; }
img { height: auto; }
.wp-site-blocks { overflow: clip; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-post-content { margin-block-start: 0; }
p, li, dd, blockquote { overflow-wrap: anywhere; }

::selection { color: #fff; background: var(--sg-forest); }
:root[data-theme="dark"] ::selection { color: var(--sg-forest-ink); background: var(--sg-gold-light); }

:focus-visible { outline: 2px solid var(--sg-gold); outline-offset: 3px; }
:where(a, button, [role="button"], input, select, textarea, summary) { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea) { accent-color: var(--sg-forest); }

/* Headings: Arabic typography never gets negative tracking (it breaks joins). */
:where(h1, h2, h3, h4, h5, h6, .wp-block-heading) {
  font-family: var(--sg-font-heading);
  font-weight: 700;
  line-height: var(--sg-leading-tight);
  letter-spacing: 0;
  text-wrap: balance;
}
.wp-block-heading { color: var(--sg-heading); overflow-wrap: anywhere; }

:where(.wp-site-blocks) a:where(:not(.wp-element-button)) { text-underline-offset: .28em; text-decoration-thickness: 1px; }
:where(:root[data-theme="dark"]) body a:where(:not(.wp-element-button)) { color: #9fd3b2; }

/* Readable defaults for WordPress colour presets in dark mode. */
:root[data-theme="dark"] .has-forest-color { color: var(--sg-heading) !important; }
:root[data-theme="dark"] .has-ink-color { color: var(--sg-ink) !important; }
.has-orange-color { color: var(--sg-accent-text) !important; }

/* Accessible skip link */
.skip-link.screen-reader-text:focus {
  z-index: 100000;
  padding: .7rem 1.1rem;
  border-radius: var(--sg-radius-sm);
  color: #fff;
  background: var(--sg-forest);
  box-shadow: var(--sg-shadow-md);
  font-family: var(--sg-font-heading);
  font-weight: 600;
}

/* Thin branded scrollbars (desktop) */
@media (hover: hover) and (pointer: fine) {
  html { scrollbar-color: color-mix(in srgb, var(--sg-forest) 38%, transparent) transparent; scrollbar-width: thin; }
  :root[data-theme="dark"] { scrollbar-color: rgba(214, 233, 221, .22) transparent; }
}

/* ------------------------------------------------------------------ */
/* 3. Layout primitives                                                */
/* ------------------------------------------------------------------ */
.sg-container {
  box-sizing: border-box;
  width: min(var(--sg-container), calc(100% - 2 * var(--sg-gutter)));
  max-width: none;
  margin-inline: auto;
}
.sg-section { position: relative; padding-block: var(--sg-section-y); }
.sg-section--compact { padding-block: clamp(2rem, 4vw, 3.2rem); }

/* ------------------------------------------------------------------ */
/* 4. Editorial typography components                                  */
/* ------------------------------------------------------------------ */
.sg-eyebrow,
.wp-block-heading.sg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 1.1rem;
  padding: .38rem .95rem .38rem .85rem;
  border: 1px solid color-mix(in srgb, var(--sg-gold) 34%, transparent);
  border-radius: 999px;
  color: var(--sg-accent-text);
  background: color-mix(in srgb, var(--sg-gold) 9%, transparent);
  font-family: var(--sg-font-heading);
  font-size: var(--sg-text-xs);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .01em;
}
.sg-eyebrow::before {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  content: "";
  background: var(--sg-gold);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--sg-gold) 18%, transparent);
}
.sg-section-title,
.wp-block-heading.sg-section-title {
  margin: 0 0 1rem;
  color: var(--sg-heading);
  font-size: var(--sg-h2);
  font-weight: 700;
  line-height: 1.28;
}
.sg-section .sg-section-title::after {
  display: block;
  width: 56px;
  height: 3px;
  margin-top: .9rem;
  border-radius: 3px;
  content: "";
  background: linear-gradient(90deg, transparent, var(--sg-gold) 30%, var(--sg-gold-light));
}
.sg-section .sg-section-title[style*="text-align: center"]::after,
.sg-section .sg-section-title.has-text-align-center::after { margin-inline: auto; }
.sg-cta-band .sg-section-title::after { display: none; }

.sg-section-lead,
.sg-page-lead,
.sg-lead {
  max-width: 68ch;
  margin: 0 0 2rem;
  color: var(--sg-muted);
  font-size: var(--sg-text-lg);
  line-height: 2;
  text-wrap: pretty;
}
.sg-lead:empty, .sg-section-lead:empty, .sg-page-lead:empty,
.sg-art-placeholder-label:empty, .sg-art-placeholder-caption:empty { display: none; }

/* ------------------------------------------------------------------ */
/* 5. Buttons and links                                                */
/* ------------------------------------------------------------------ */
.wp-block-buttons { gap: .75rem; }
.wp-block-button__link,
.wp-element-button {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 50px;
  overflow: hidden;
  padding: var(--sg-button-padding-y, .85rem) var(--sg-button-padding-x, 1.5rem);
  border: 1px solid transparent;
  border-radius: var(--sg-radius-btn);
  font-family: var(--sg-font-heading);
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--sg-transition), box-shadow var(--sg-transition), background-color var(--sg-transition), color var(--sg-transition), border-color var(--sg-transition);
}
.wp-block-button__link::after,
.sg-v6-button::after,
.sg-trade-button::after,
.sg-v6-header-cta::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .26) 48%, transparent 66%);
  transform: translateX(110%);
  transition: transform 900ms var(--sg-ease);
}
.wp-block-button__link:hover::after,
.sg-v6-button:hover::after,
.sg-trade-button:hover::after,
.sg-v6-header-cta:hover::after { transform: translateX(-110%); }
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button__link:active { transform: translateY(0); transition-duration: 80ms; }

.wp-block-button.sg-btn-primary .wp-block-button__link,
.wp-block-button:not([class*="sg-btn-"]) .wp-block-button__link:not(.has-background) {
  color: var(--sg-btn-text);
  background: var(--sg-btn-bg);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .12) inset, 0 14px 30px -14px color-mix(in srgb, var(--sg-forest) 75%, transparent);
}
.wp-block-button.sg-btn-primary .wp-block-button__link:hover,
.wp-block-button:not([class*="sg-btn-"]) .wp-block-button__link:not(.has-background):hover {
  color: var(--sg-btn-text);
  background: var(--sg-btn-bg-hover);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .12) inset, 0 18px 36px -14px color-mix(in srgb, var(--sg-forest) 85%, transparent);
}
.wp-block-button.sg-btn-outline .wp-block-button__link {
  color: var(--sg-heading);
  border-color: color-mix(in srgb, var(--sg-gold) 55%, var(--sg-border-strong));
  background: color-mix(in srgb, var(--sg-card) 70%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.wp-block-button.sg-btn-outline .wp-block-button__link:hover {
  color: var(--sg-forest-ink);
  border-color: var(--sg-gold);
  background: var(--sg-gold-light);
  box-shadow: var(--sg-shadow-gold);
}
.wp-block-button.sg-btn-light .wp-block-button__link {
  color: var(--sg-forest-ink);
  background: #fffdf7;
  box-shadow: 0 14px 30px -16px rgba(0, 0, 0, .45);
}
.wp-block-button.sg-btn-light .wp-block-button__link:hover { color: var(--sg-forest-ink); background: var(--sg-gold-light); }
:root[data-theme="dark"] .wp-block-button.sg-btn-outline .wp-block-button__link { color: var(--sg-ink); background: rgba(255, 255, 255, .03); }
:root[data-theme="dark"] .wp-block-button.sg-btn-outline .wp-block-button__link:hover { color: var(--sg-forest-ink); }

/* Inline “details” links with a moving arrow */
.sg-text-link { margin: auto 0 0; padding-top: .4rem; font-family: var(--sg-font-heading); font-weight: 600; }
.sg-text-link a,
.sg-section .sg-text-link a {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--sg-heading);
  text-decoration: none;
  background-image: linear-gradient(var(--sg-gold), var(--sg-gold));
  background-repeat: no-repeat;
  background-position: 100% 100%;
  background-size: 0% 1.5px;
  transition: color var(--sg-transition), background-size 500ms var(--sg-ease);
}
.sg-text-link a span {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid var(--sg-border-strong);
  border-radius: 50%;
  font-size: .9rem;
  line-height: 1;
  transition: transform 420ms var(--sg-ease), background-color var(--sg-transition), border-color var(--sg-transition), color var(--sg-transition);
}
.sg-text-link a:hover,
.sg-section .sg-text-link a:hover { color: var(--sg-accent-text); background-size: 100% 1.5px; }
.sg-text-link a:hover span { transform: translateX(-4px); border-color: var(--sg-gold); color: var(--sg-forest-ink); background: var(--sg-gold-light); }

/* ------------------------------------------------------------------ */
/* 6. Form controls (generic; plugin forms refined in components.css)  */
/* ------------------------------------------------------------------ */
:where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="password"], input[type="date"], select, textarea) {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 50px;
  padding: .75rem 1rem;
  border: 1px solid var(--sg-border-strong);
  border-radius: var(--sg-radius-sm);
  color: var(--sg-ink);
  background: var(--sg-card);
  transition: border-color var(--sg-transition), box-shadow var(--sg-transition), background-color var(--sg-transition);
}
:where(input, select, textarea):focus { outline: none; border-color: var(--sg-gold); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sg-gold) 22%, transparent); }

/* ------------------------------------------------------------------ */
/* 7. Elementor bridge                                                 */
/*    Theme sections live inside Elementor “Text editor” widgets. These */
/*    rules let them span the full width and use the theme typography.  */
/* ------------------------------------------------------------------ */
.elementor .e-con:has(.sg-section, .sg-home-hero, .sg-stats-section, .sg-v6-home, .sg-v6-about-page, .sg-v6-trade-page, .sg-location-map-root) {
  --content-width: 100%;
  --container-max-width: 100%;
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --padding-right: 0px;
  --padding-block-start: 0px;
  --padding-block-end: 0px;
  --padding-inline-start: 0px;
  --padding-inline-end: 0px;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --widgets-spacing: 0px;
  --kit-widget-spacing: 0px;
  max-width: 100%;
  padding: 0 !important;
}
.elementor .e-con:has(.sg-section, .sg-home-hero, .sg-stats-section, .sg-v6-home, .sg-v6-about-page, .sg-v6-trade-page, .sg-location-map-root) > .e-con-inner {
  width: 100%;
  max-width: 100%;
  padding: 0;
  gap: 0;
}
.elementor .elementor-widget-text-editor:has(.sg-section, .sg-home-hero, .sg-stats-section, .sg-v6-home, .sg-v6-about-page, .sg-v6-trade-page),
.elementor .elementor-widget-shortcode:has(.sg-location-map-root) {
  --container-widget-width: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
  margin: 0 !important;
  color: var(--sg-ink) !important;
  font-family: var(--sg-font-body) !important;
  font-size: var(--sg-text-base) !important;
  font-weight: 400 !important;
  line-height: var(--sg-leading);
  text-align: start;
}
.elementor-widget-text-editor:has(.sg-section, .sg-home-hero) :where(p) { margin-block: 0 1rem; }
.elementor-widget-text-editor:has(.sg-section, .sg-home-hero) > :last-child { margin-bottom: 0; }

/* Neutralise hard-coded white text that was pasted into page content. */
:root:not([data-theme="dark"]) .sg-page-main :is(.sg-page-intro, .sg-section) :is(span, mark, strong, em)[style*="color: #ffffff"],
:root:not([data-theme="dark"]) .sg-page-main :is(.sg-page-intro, .sg-section) :is(span, mark, strong, em)[style*="color:#ffffff"],
:root:not([data-theme="dark"]) .sg-page-main :is(.sg-page-intro, .sg-section) :is(span, mark, strong, em)[style*="color: #fff;"],
:root:not([data-theme="dark"]) .sg-page-main :is(.sg-page-intro, .sg-section) :is(span, mark, strong, em)[style*="color: rgb(255, 255, 255)"] {
  color: inherit !important;
}
.sg-page-main .elementor-widget-text-editor { color: var(--sg-ink); }
.sg-page-intro mark { color: inherit; background: transparent; }
.sg-page-intro mark.has-orange-color { color: var(--sg-accent-text) !important; }

/* Native Elementor widgets that may be added later still match the brand. */
.elementor-page .elementor-heading-title { font-family: var(--sg-font-heading); color: var(--sg-heading); letter-spacing: 0; }
.elementor-page .elementor-button { font-family: var(--sg-font-heading); font-weight: 600; border-radius: var(--sg-radius-btn); transition: transform var(--sg-transition), box-shadow var(--sg-transition); }
.elementor-page .elementor-button:hover { transform: translateY(-2px); }
.elementor-page .elementor-widget-image img { border-radius: var(--sg-radius); }
.elementor-widget, .elementor-widget-container, .e-con, .elementor-container, .elementor-column { min-width: 0; max-width: 100%; }
