/* ==========================================================================
   PUBLIC OWNER DOMAIN: BUILDER DESIGN SYSTEM
   Owner: SALYSS Realty Public Theme
   Scope: semantic tokens, adaptive light/dark surfaces and generic visual
   intents shared by Builder blocks. Structural layout remains in
   public-builder-core.css and each block keeps its own presentation owner.
   ========================================================================== */
.salyssbp-document{
  --salyss-color-page:var(--salyss-content-bg,#f7f4ee);
  --salyss-color-surface:var(--salyss-content-surface,#fff);
  --salyss-color-surface-elevated:color-mix(in srgb,var(--salyss-content-surface) 94%,var(--salyss-content-surface-2));
  --salyss-color-surface-soft:var(--salyss-content-surface-2,#f0ebe2);
  --salyss-color-text:var(--salyss-content-text,#0d1b2a);
  --salyss-color-text-muted:var(--salyss-content-muted,#596777);
  --salyss-color-border:var(--salyss-content-border,#ddd4c6);
  --salyss-color-brand:var(--salyss-content-primary,#b58a44);
  --salyss-color-brand-hover:var(--salyss-store-primary-hover,var(--salyss-content-primary,#9d7539));
  --salyss-color-accent:var(--salyss-content-accent,var(--salyss-content-primary,#b58a44));
  --salyss-color-on-brand:var(--salyss-store-on-primary,#fff);
  --salyss-color-accent-soft:var(--salyss-store-accent-soft,color-mix(in srgb,var(--salyss-color-accent) 24%,transparent));
  --salyss-color-on-accent:var(--salyss-store-on-accent,#17120a);
  --salyss-color-contrast-accent:var(--salyss-store-dark-gold,#d2b477);
  --salyss-color-on-contrast-accent:#17120a;
  --salyss-color-success:var(--salyss-content-success,#15805d);
  --salyss-color-warning:var(--salyss-content-warning,#9a6712);
  --salyss-color-danger:var(--salyss-content-danger,#b43a34);
  --salyss-color-info:var(--salyss-content-info,#356e9d);
  --salyss-color-shadow:var(--salyss-content-shadow,rgba(19,35,48,.09));
  --salyss-color-contrast-bg:#0a1725;
  --salyss-color-contrast-surface:#102438;
  --salyss-color-contrast-text:#f8f5ee;
  --salyss-color-contrast-muted:#c2ccd5;
  /* Strong action tokens let the reusable Button block stay adaptive without
     homepage-specific selectors: navy on light surfaces, gold on dark mode. */
  --salyss-color-action-strong-bg:var(--salyss-color-contrast-bg);
  --salyss-color-action-strong-text:var(--salyss-color-contrast-text);
  --salyss-color-action-strong-border:var(--salyss-color-contrast-bg);
  --salyss-color-action-strong-hover-bg:var(--salyss-color-brand);
  --salyss-color-action-strong-hover-text:var(--salyss-color-on-brand);
  --salyss-space-2xs:4px;
  --salyss-space-xs:8px;
  --salyss-space-sm:12px;
  --salyss-space-md:16px;
  --salyss-space-lg:20px;
  --salyss-space-xl:24px;
  --salyss-space-2xl:32px;
  --salyss-space-3xl:clamp(40px,5vw,72px);
  --salyss-radius-sm:10px;
  --salyss-radius-md:16px;
  --salyss-radius-lg:24px;
  --salyss-radius-xl:clamp(24px,3vw,38px);
  --salyss-shadow-sm:0 1px 2px color-mix(in srgb,var(--salyss-color-text) 5%,transparent);
  --salyss-shadow-md:0 18px 46px color-mix(in srgb,var(--salyss-color-text) 10%,transparent);
  --salyss-shadow-lg:0 32px 96px color-mix(in srgb,var(--salyss-color-text) 15%,transparent);
  --salyss-motion-fast:180ms;
  --salyss-motion-normal:320ms;
  --salyss-motion-slow:650ms;
  --salyss-ease-standard:cubic-bezier(.2,.7,.2,1);
  --salyss-ease-emphasized:cubic-bezier(.16,1,.3,1);
  /* Public editorial type scale. Section owners consume these tokens so large
     headings and small supporting copy stay proportionate across the homepage. */
  --salyss-type-eyebrow:clamp(14px,.78vw,15px);
  --salyss-type-caption:clamp(15px,.9vw,16px);
  --salyss-type-body-sm:clamp(16px,1vw,17px);
  --salyss-type-body:clamp(17px,1.08vw,18px);
  --salyss-type-card-title:clamp(18px,1.2vw,20px);
  --salyss-type-section:clamp(32px,2.55vw,42px);
  --salyss-type-section-strong:clamp(34px,2.8vw,46px);

  /* Compatibility aliases. New public components should consume the semantic
     variables above; these aliases keep existing block owners stable while the
     per-block rebuild is completed. */
  --salyss-page:var(--salyss-color-page);
  --salyss-surface:var(--salyss-color-surface);
  --salyss-surface-2:var(--salyss-color-surface-soft);
  --salyss-surface-3:color-mix(in srgb,var(--salyss-color-surface-soft) 82%,var(--salyss-color-border));
  --salyss-ink:var(--salyss-color-text);
  --salyss-text:var(--salyss-color-text);
  --salyss-muted:var(--salyss-color-text-muted);
  --salyss-color-muted:var(--salyss-color-text-muted);
  --salyss-color-soft:var(--salyss-color-surface-soft);
  --salyss-line:var(--salyss-color-border);
  --salyss-accent:var(--salyss-color-brand);
  --salyss-accent-strong:var(--salyss-color-brand-hover);
  --salyss-danger:var(--salyss-color-danger);
  --salyss-success:var(--salyss-color-success);
  --salyss-surface-alt:var(--salyss-color-surface-soft);
  --salyss-soft:var(--salyss-color-surface-soft);
  --salyss-radius:var(--salyss-radius-md);
  --salyss-shadow:var(--salyss-shadow-md);
  --salyss-control-height:46px;
  --salyss-control-radius:8px;
  --salyss-card-radius:var(--salyss-radius-md);
  --salyss-card-border:1px solid var(--salyss-color-border);
  --salyss-card-shadow:var(--salyss-shadow-sm);
  --salyss-card-shadow-hover:var(--salyss-shadow-md);
}
@media(min-width:1600px){
  .salyssbp-document{
    --salyss-type-eyebrow:clamp(15px,.78vw,16px);
    --salyss-type-caption:clamp(16px,.86vw,17px);
    --salyss-type-body-sm:clamp(17px,.94vw,18px);
    --salyss-type-body:clamp(18px,1vw,19px);
    --salyss-type-card-title:clamp(20px,1.12vw,22px);
    --salyss-type-section:clamp(40px,2.35vw,50px);
    --salyss-type-section-strong:clamp(44px,2.55vw,56px);
  }
}
html[data-salyss-theme="light"] .salyssbp-document{
  --salyss-color-surface-elevated:#fffdfa;
  --salyss-color-action-strong-bg:#102235;
  --salyss-color-action-strong-text:#f9f6ef;
  --salyss-color-action-strong-border:#102235;
  --salyss-color-action-strong-hover-bg:#1f3651;
  --salyss-color-action-strong-hover-text:#f9f6ef;
}
html[data-salyss-theme="dark"] .salyssbp-document{
  --salyss-color-surface-elevated:#102132;
  --salyss-color-contrast-bg:#020914;
  --salyss-color-contrast-surface:#0a1827;
  --salyss-color-contrast-text:#f8f5ee;
  --salyss-color-contrast-muted:#aebbc7;
  --salyss-color-action-strong-bg:var(--salyss-color-brand);
  --salyss-color-action-strong-text:var(--salyss-color-on-brand);
  --salyss-color-action-strong-border:var(--salyss-color-brand);
  --salyss-color-action-strong-hover-bg:var(--salyss-color-brand-hover);
  --salyss-color-action-strong-hover-text:var(--salyss-color-on-brand);
  --salyss-shadow-md:0 18px 50px rgba(0,0,0,.28);
  --salyss-shadow-lg:0 34px 100px rgba(0,0,0,.42);
}
.salyssbp-theme-salyss-realty{
  --realty-bg:var(--salyss-color-page);
  --realty-surface:var(--salyss-color-surface);
  --realty-surface-soft:var(--salyss-color-surface-soft);
  --realty-text:var(--salyss-color-text);
  --realty-muted:var(--salyss-color-text-muted);
  --realty-border:var(--salyss-color-border);
  --realty-primary:var(--salyss-color-brand);
  --realty-gold:var(--salyss-color-accent);
  --realty-radius:var(--salyss-store-radius,var(--salyss-radius-lg));
  --realty-shadow:var(--salyss-shadow-lg);
}

/* Adaptive surface tones. */
.salyssbp-tone-surface{
  --salyssbp-semantic-bg:var(--salyss-color-surface);
  --salyssbp-semantic-text:var(--salyss-color-text);
  --salyssbp-semantic-muted:var(--salyss-color-text-muted);
  --salyssbp-semantic-border:var(--salyss-color-border);
  background-color:var(--salyssbp-bg,var(--salyssbp-semantic-bg));
  color:var(--salyssbp-color,var(--salyssbp-semantic-text));
}
.salyssbp-tone-soft{
  --salyssbp-semantic-bg:var(--salyss-color-surface-soft);
  --salyssbp-semantic-text:var(--salyss-color-text);
  --salyssbp-semantic-muted:var(--salyss-color-text-muted);
  --salyssbp-semantic-border:color-mix(in srgb,var(--salyss-color-border) 74%,transparent);
  background-color:var(--salyssbp-bg,var(--salyssbp-semantic-bg));
  color:var(--salyssbp-color,var(--salyssbp-semantic-text));
}
.salyssbp-tone-contrast{
  --salyssbp-semantic-bg:var(--salyss-color-contrast-bg);
  --salyssbp-semantic-text:var(--salyss-color-contrast-text);
  --salyssbp-semantic-muted:var(--salyss-color-contrast-muted);
  --salyssbp-semantic-border:color-mix(in srgb,var(--salyss-color-contrast-text) 20%,transparent);
  --salyss-color-text:var(--salyssbp-semantic-text);
  --salyss-color-text-muted:var(--salyssbp-semantic-muted);
  --salyss-color-border:var(--salyssbp-semantic-border);
  background-color:var(--salyssbp-bg,var(--salyssbp-semantic-bg));
  color:var(--salyssbp-color,var(--salyssbp-semantic-text));
}
.salyssbp-tone-brand{
  --salyssbp-semantic-bg:var(--salyss-color-brand);
  --salyssbp-semantic-text:var(--salyss-color-on-brand);
  --salyssbp-semantic-muted:color-mix(in srgb,var(--salyss-color-on-brand) 74%,transparent);
  --salyssbp-semantic-border:color-mix(in srgb,var(--salyss-color-on-brand) 24%,transparent);
  --salyss-color-text:var(--salyssbp-semantic-text);
  --salyss-color-text-muted:var(--salyssbp-semantic-muted);
  --salyss-color-border:var(--salyssbp-semantic-border);
  background-color:var(--salyssbp-bg,var(--salyssbp-semantic-bg));
  color:var(--salyssbp-color,var(--salyssbp-semantic-text));
}
.salyssbp-tone-media{
  --salyssbp-semantic-text:#fff;
  --salyssbp-semantic-muted:rgba(255,255,255,.78);
  --salyssbp-semantic-border:rgba(255,255,255,.22);
  --salyss-color-text:var(--salyssbp-semantic-text);
  --salyss-color-text-muted:var(--salyssbp-semantic-muted);
  --salyss-color-border:var(--salyssbp-semantic-border);
  color:var(--salyssbp-color,var(--salyssbp-semantic-text));
  text-shadow:0 2px 24px rgba(0,0,0,.24);
}
.salyssbp-tone-transparent{background-color:transparent;color:inherit;}

/* Surface personality. These classes only provide the generic material; each
   block owner decides its internal layout. */
.salyssbp-surface-outlined{
  border-color:var(--salyssbp-border-color,var(--salyssbp-semantic-border,var(--salyss-color-border)));
  border-style:var(--salyssbp-border-style,solid);
  border-width:var(--salyssbp-border-width,1px);
  border-radius:var(--salyssbp-radius,var(--salyss-radius-md));
}
.salyssbp-surface-elevated{
  border-color:var(--salyssbp-border-color,color-mix(in srgb,var(--salyss-color-border) 70%,transparent));
  border-style:var(--salyssbp-border-style,solid);
  border-width:var(--salyssbp-border-width,1px);
  border-radius:var(--salyssbp-radius,var(--salyss-radius-lg));
  background-color:var(--salyssbp-bg,var(--salyss-color-surface-elevated));
  box-shadow:var(--salyssbp-box-shadow,var(--salyss-shadow-md));
}
.salyssbp-surface-glass{
  border-color:var(--salyssbp-border-color,color-mix(in srgb,var(--salyss-color-border) 56%,transparent));
  border-style:var(--salyssbp-border-style,solid);
  border-width:var(--salyssbp-border-width,1px);
  border-radius:var(--salyssbp-radius,var(--salyss-radius-lg));
  background-color:var(--salyssbp-bg,color-mix(in srgb,var(--salyss-color-surface) 76%,transparent));
  box-shadow:var(--salyssbp-box-shadow,var(--salyss-shadow-md));
  backdrop-filter:blur(18px) saturate(130%);
}

/* Content density is semantic and intentionally modest. It changes the rhythm
   of composite surfaces without forcing padding on every atomic text node. */
.salyssbp-density-compact{--salyssbp-density-gap:10px;--salyssbp-density-pad:clamp(12px,1.4vw,18px);}
.salyssbp-density-balanced{--salyssbp-density-gap:16px;--salyssbp-density-pad:clamp(18px,2vw,26px);}
.salyssbp-density-airy{--salyssbp-density-gap:clamp(18px,2.4vw,32px);--salyssbp-density-pad:clamp(24px,3.5vw,48px);}
.salyssbp-density-cinematic{--salyssbp-density-gap:clamp(24px,4vw,54px);--salyssbp-density-pad:clamp(34px,6vw,88px);}
.salyssbp-icon-box.salyssbp-surface-elevated,
.salyssbp-image-box.salyssbp-surface-elevated,
.salyssbp-cta.salyssbp-surface-elevated{
  padding:var(--salyssbp-padding,var(--salyssbp-density-pad,var(--salyss-space-xl)));
}

/* Primitive visual presets are owned by each dedicated block stylesheet. */

/* Motion profiles. No content is hidden and reduced-motion remains authoritative. */
.salyssbp-motion-profile-subtle,
.salyssbp-motion-profile-editorial,
.salyssbp-motion-profile-cinematic{transition-property:transform,box-shadow,border-color,background-color,color;transition-timing-function:var(--salyss-ease-standard);will-change:transform;}
.salyssbp-motion-profile-subtle{transition-duration:var(--salyss-motion-fast);}
.salyssbp-motion-profile-editorial{transition-duration:var(--salyss-motion-normal);}
.salyssbp-motion-profile-cinematic{transition-duration:var(--salyss-motion-slow);transition-timing-function:var(--salyss-ease-emphasized);}
@media (hover:hover) and (pointer:fine){
  .salyssbp-motion-profile-subtle:hover{transform:translateY(-2px);}
  .salyssbp-motion-profile-editorial:hover{transform:translateY(-5px);}
  .salyssbp-motion-profile-cinematic:hover{transform:translateY(-7px) scale(1.006);}
}
@media (prefers-reduced-motion:reduce){
  .salyssbp-motion-profile-subtle,
  .salyssbp-motion-profile-editorial,
  .salyssbp-motion-profile-cinematic{transition:none;will-change:auto;}
  .salyssbp-motion-profile-subtle:hover,
  .salyssbp-motion-profile-editorial:hover,
  .salyssbp-motion-profile-cinematic:hover{transform:none;}
}
