/* ============================================================
   E-Assets brand styles — colors, fonts, and section overrides.
   Loaded after the Createx theme (style.css) in includes/head.php.
   ============================================================ */

/* ===================== Colors ===================== */
/* E-Assets brand palette — remaps the Createx/Bootstrap "primary" system to the
   reference --ea-* tokens (dark #2d2637 accent + beige/cream surfaces).
   Swap-in replacement for colors/red.css. */
:root {
  --bs-primary: #2d2637;                     /* --ea-dark / --ea-accent */
  --bs-primary-rgb: 45, 38, 55;
  --bs-link-color-rgb: 45, 38, 55;
  --bs-link-hover-color-rgb: 95, 84, 126;    /* --ea-accent-2 */
  --bs-soft-primary: #f1e8d7;                /* --ea-sand */
  --bs-pale-primary: #faf6ee;                /* --ea-cream */
  --bs-bullet-soft-primary: #e3d3b4;         /* --ea-beige-2 */
  --bs-icon-fill-primary: #ece0c9;           /* --ea-beige */
  --bs-icon-solid-fill-primary: #2d2637;
  --bs-border-soft-primary: #e3d3b4;

  /* page surface */
  --bs-body-bg: #faf6ee;                     /* --ea-cream */
  --bs-body-color: #2c2438;                  /* --ea-text */
  --bs-heading-color: #2d2637;               /* --ea-dark — headings (was Createx #343f52) */
}

body {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
}

/* Headings use the reference dark #2d2637 (Createx defaults them to slate #343f52). */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  color: #2d2637;
}

/* Reference uses a slightly lighter purple on hover, not a darker shade. */
.btn-primary:hover,
.btn-primary:focus-visible,
.btn-primary:active {
  background-color: #5f547e;
  border-color: #5f547e;
  color: #fff;
}

/* ===================== Fonts ====================== */
/* E-Assets brand fonts — self-hosted Inter (body/UI) + Poppins (headings).
   Font files in assets/fonts/eassets/ (Google Fonts latin + latin-ext).
   Swap-in replacement for fonts/thicccboi.css; keeps Createx sizing. */
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/eassets/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/eassets/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/eassets/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/eassets/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/eassets/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/eassets/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/eassets/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/eassets/pxiByp8kv8JHgFVrLGT9Z1xlFQ.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;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/eassets/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/eassets/pxiByp8kv8JHgFVrLEj6Z1xlFQ.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;
}
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/eassets/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/eassets/pxiByp8kv8JHgFVrLCz7Z1xlFQ.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;
}

:root {
  --bs-font-sans-serif: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
* {
  word-spacing: normal !important
}
body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: .85rem
}
.btn,
.dropdown-item,
.nav-link {
  letter-spacing: normal
}
.btn,
.lg-sub-html p,
.nav-link,
.nav-link p,
.navbar .btn-sm {
  font-size: .85rem
}
.dropdown-menu {
  font-size: .8rem
}
.btn-group-sm>.btn,
.btn-sm,
.post-meta,
.share-dropdown .dropdown-menu .dropdown-item {
  font-size: .75rem
}
.filter,
.filter ul li a,
.meta,
.post-category {
  font-size: .7rem
}
.post-header .post-meta {
  font-size: .85rem
}
.accordion-wrapper .card-header button,
.collapse-link,
.nav-tabs .nav-link {
  font-size: .9rem
}
blockquote {
  font-size: .9rem
}
.blockquote-footer {
  font-size: .65rem
}
.blockquote-details p {
  font-size: .85rem
}
.counter-wrapper p {
  font-size: .85rem
}
.counter-wrapper .counter {
  font-size: calc(1.33rem + .96vw)
}
@media (min-width:1200px) {
  .counter-wrapper .counter {
    font-size: 2.05rem
  }
}
.counter-wrapper .counter.counter-lg {
  font-size: calc(1.35rem + 1.2vw)
}
@media (min-width:1200px) {
  .counter-wrapper .counter.counter-lg {
    font-size: 2.25rem
  }
}
.icon-list.bullet-bg i {
  top: .25rem
}
.accordion-wrapper .card-header button:before {
  margin-top: -.2rem
}
.form-floating>label {
  padding-top: .65rem
}
.h1,
h1 {
  font-size: calc(1.275rem + .3vw)
}
@media (min-width:1200px) {
  .h1,
  h1 {
    font-size: 1.5rem
  }
}
.h2,
h2 {
  font-size: calc(1.26rem + .12vw)
}
@media (min-width:1200px) {
  .h2,
  h2 {
    font-size: 1.35rem
  }
}
.h3,
h3 {
  font-size: 1.15rem
}
.h4,
h4 {
  font-size: 1rem
}
.h5,
h5 {
  font-size: .95rem
}
.h6,
h6 {
  font-size: .9rem
}
.fs-sm {
  font-size: .75rem !important
}
.fs-lg {
  font-size: 1.05rem !important
}
.lead {
  font-size: .95rem;
  line-height: 1.6
}
.lead.fs-lg {
  font-size: 1.1rem !important;
  line-height: 1.55
}
.display-1 {
  font-size: calc(1.375rem + 1.5vw);
  line-height: 1.15
}
@media (min-width:1200px) {
  .display-1 {
    font-size: 2.5rem
  }
}
.display-2 {
  font-size: calc(1.355rem + 1.26vw);
  line-height: 1.2
}
@media (min-width:1200px) {
  .display-2 {
    font-size: 2.3rem
  }
}
.display-3 {
  font-size: calc(1.335rem + 1.02vw);
  line-height: 1.2
}
@media (min-width:1200px) {
  .display-3 {
    font-size: 2.1rem
  }
}
.display-4 {
  font-size: calc(1.315rem + .78vw);
  line-height: 1.25
}
@media (min-width:1200px) {
  .display-4 {
    font-size: 1.9rem
  }
}
.display-5 {
  font-size: calc(1.295rem + .54vw);
  line-height: 1.25
}
@media (min-width:1200px) {
  .display-5 {
    font-size: 1.7rem
  }
}
.display-6 {
  font-size: calc(1.275rem + .3vw);
  line-height: 1.3
}
@media (min-width:1200px) {
  .display-6 {
    font-size: 1.5rem
  }
}
/* Headings use Poppins (reference identity) */
h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:'Poppins',sans-serif;font-weight:600}
h1,.h1,.display-1{font-weight:700;letter-spacing:-.5px}
/* Poppins glyphs are taller than the theme font — loosen the tight display
   line-heights so wrapped headings don't overlap vertically. */
h1,.h1,.display-1,.display-2,.display-3{line-height:1.25}

/* ==================== Sections ==================== */
/* E-Assets custom frontend styles (hero + future sections).
   Loaded after the theme in includes/head.php. */

/* Hero section: beige ornament background behind the split layout. */
.ea-hero-bg {
  background: #f2e8d7 url('/assets/img/hero-ornament.svg') center/cover no-repeat;
  overflow: hidden;
}

/* Cap the headline size so long Estonian words fit the column (no per-word wrapping). */
.ea-hero-bg .display-1 {
  font-size: clamp(1.6rem, 0.5rem + 2.3vw, 2.5rem);
}


/* Icon Boxes: brand beige circle around each icon (reference "why-icon" look). */
.ea-icon-circle {
  width: 76px; height: 76px; border-radius: 50%;
  background: #e3d3b7; color: #2d2637;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1rem; font-size: 2rem;
}

/* Icon Boxes section background (sand). */
.ea-boxes-bg { background-color: #f1e8d7; }

/* Partner logos: darken every logo to a uniform silhouette on the light band (matches the
   reference "Tarkvarad" strip), brightening to full opacity on hover. */
.ea-partner-logo { max-height: 44px; width: auto; filter: brightness(0); opacity: .55; transition: opacity .2s ease; }
.ea-partner-logo:hover { opacity: 1; }

/* Accessibility trigger (navbar): match the navbar menu items. The component ships this toggle
   small/muted with !important, and it sits in .navbar-other (which doesn't inherit the center-nav
   link styling), so override with matching size/weight/colour. The component's high-contrast rule
   (body.a11y-contrast-high ...) is more specific, so contrast mode still wins over these. */
#accessibility-toggle span { font-size: 17px !important; font-weight: 700 !important; color: #343f52 !important; }
#accessibility-toggle i { font-size: 20px; color: #343f52; }
#accessibility-toggle:hover span,
#accessibility-toggle:focus span,
#accessibility-toggle:hover i,
#accessibility-toggle:focus i { color: var(--bs-primary) !important; }

/* Accessibility panel: the core component hides its controls panel below 992px (desktop-only).
   Since the trigger is now available on every screen size, allow the panel on small screens too
   when the toggle opens it (the JS adds .accessibility-controls-visible to <body>), keeping the
   taller stacked layout scrollable within the viewport. */
@media (max-width: 991.98px) {
  body.accessibility-controls-visible .accessibility-controls {
    display: block !important;
    max-height: 100vh !important;
    overflow-y: auto !important;
  }
}

/* Team member photo: fixed circular crop regardless of the uploaded aspect ratio (width = .w-20). */
.ea-team-photo { height: 10rem; object-fit: cover; }

/* Contact form message box height. */
.ea-contact-message { min-height: 150px; }

/* Footer: the reference footer band colour (deeper beige, --ea-beige-2) with dark brand text and
   links, mirroring reference/includes/footer.php's .ea-footer. */
.ea-footer { background-color: #e3d3b4; }
.ea-footer a { color: #2d2637; }
.ea-footer a:hover { color: var(--bs-primary); }

/* Services cards: force every card image to a fixed height (object-fit: cover) so the card size
   never changes with the uploaded image's aspect ratio. The !important height beats the theme's
   `figure img { height: auto !important }`; a fixed px (not %) avoids the image's intrinsic
   height leaking through an auto-height figure. */
.ea-service-card .card-img-top { overflow: hidden; }
.ea-service-card .card-img-top img { width: 100% !important; height: 240px !important; object-fit: cover; }

/* Testimonial cards: a soft brand shadow (Createx cards are flat by default). Masonry (3+ cards) uses
   natural heights so uneven quotes stagger with no gaps. In the equal-height 1–2 card mode (.h-100),
   pin the avatar to the card bottom so the two cards still line up. */
.ea-testimonial { border: none; box-shadow: 0 10px 35px rgba(58, 32, 99, .07); }
.ea-testimonial.h-100 .card-body { display: flex; flex-direction: column; }
.ea-testimonial.h-100 blockquote.icon { display: flex; flex-direction: column; flex: 1 1 auto; }
.ea-testimonial.h-100 .blockquote-details { margin-top: auto; }

/* Cookie consent (Silktide) — brand the accent to the E-Assets dark. Silktide
   drives every accept/reject button, link, close icon and cookie icon from
   --primaryColor / --cookieIconColor (default #533BE2, set in pcadmin core
   consent.css). Overriding these two vars recolours the whole widget; !important
   beats the core default and Silktide's runtime style injection. */
#silktide-wrapper {
  --primaryColor: #2d2637 !important;    /* --ea-dark */
  --cookieIconColor: #2d2637 !important;
}

/* Hide the reCAPTCHA v3 badge site-wide (its inner .rc-anchor-normal-footer sits
   in a cross-origin iframe and can't be targeted). Allowed because the contact
   form shows the required reCAPTCHA attribution text below it. */
.grecaptcha-badge { visibility: hidden !important; }

/* Accessibility trigger pinned to the navbar's right edge, out of the .navbar-other
   flex flow so it never compacts the menu/CTA (mirrors hansacandle's
   .navbar-accessibility). The navbar is position:relative, so this anchors to it. */
.navbar-accessibility {
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  margin: 0;
}
.navbar-accessibility #accessibility-toggle i { font-size: 20px; }
/* The "Ligipääsetavus" label only fits the right margin on very wide screens; below
   ~1660px the margin shrinks and the label would slide over the CTA, so show the icon
   only there (the aria-label + title tooltip keep it accessible). */
@media (max-width: 1680px) {
  .navbar-accessibility #accessibility-toggle span { display: none; }
}

/* Blog single-post body. Content is rendered via pc_render_custom_html (wrapper
   .pc-custom-html), which preserves the author's font sizes, colours, classes
   and inline images set in the TinyMCE blog editor. Keep these rules light so
   they never override the content's own inline styles / Bootstrap classes —
   no font-size here, just readability, spacing and marker restoration. */
.pc-blog-content .pc-custom-html { line-height: 1.75; color: var(--bs-body-color); }
.pc-blog-content .pc-custom-html > :first-child { margin-top: 0; }
.pc-blog-content .pc-custom-html p { margin-bottom: 1.25rem; }
.pc-blog-content .pc-custom-html h2 { margin-top: 2rem; }
.pc-blog-content .pc-custom-html h3,
.pc-blog-content .pc-custom-html h4 { margin-top: 1.5rem; }
.pc-blog-content .pc-custom-html li { margin-bottom: .5rem; }
.pc-blog-content .pc-custom-html a { color: var(--bs-primary); }
.pc-blog-content .pc-custom-html blockquote { border-left: 3px solid var(--bs-primary); padding-left: 1rem; margin: 1.5rem 0; font-style: italic; }
/* Author-inserted images display full width at their natural aspect ratio. */
.pc-blog-content .pc-custom-html img { max-width: 100%; height: auto; border-radius: .5rem; margin: 1rem 0; }
/* Restore list markers (the Sandbox theme resets list-style on ul/ol), while
   leaving the theme's own .check-list styling alone. */
.pc-blog-content .pc-custom-html ul:not(.check-list) { list-style: disc; padding-left: 1.5rem; }
.pc-blog-content .pc-custom-html ol { list-style: decimal; padding-left: 1.5rem; }

/* Blog single-post layout: when a .pc-blog-single-post section exists inside
   <main>, hide the host page's other sections (e.g. subpage-header) so the
   article reads as its own page. The class is applied by
   pcadmin-sections/pages/default/frontend/blog-posts.php in its single-post
   branch — rename both sides together if ever refactored. (:has requires
   Chrome 105+, Safari 15.4+, Firefox 121+.) */
main:has(> .pc-blog-single-post) > :not(.pc-blog-single-post) {
  display: none !important;
}

