/**
 * Theme Name: Astra Child
 * Author: Brainstorm Force
 * Description: Astra child theme with custom modifications.
 * Template: astra
 * Version: 1.0.0
 */

/* ============================================
   CSS Variables
   ============================================ */
:root {
  --color-white: #fff;
  --color-white-90: rgba(255, 255, 255, 0.9);
  --color-white-60: rgba(255, 255, 255, 0.6);
  --color-white-20: rgba(255, 255, 255, 0.2);
  --color-white-50: rgba(255, 255, 255, 0.5);
  --color-white-30: rgba(255, 255, 255, 0.3);
  --dotted-border: 2px dotted var(--color-white-90);
  --dotted-border-focus: 2px dotted var(--color-white);
  --form-font-size: 12px;
}

/* ============================================
   Unified Form Text Styling
   ============================================ */
.site-footer .form-container .jet-form-builder__label,
.site-footer .form-container .jet-form-builder__label-text,
.site-footer .form-container label,
.sonum-label,
.msg-label,
.saada-sonum,
.site-footer .form-container button[type="submit"],
.site-footer .form-container .jet-form-builder__submit {
  font-size: var(--form-font-size) !important;
  color: var(--color-white) !important;
  font-family: inherit !important;
  font-weight: normal !important;
  line-height: 1.5 !important;
}

/* ============================================
   Form Styling
   ============================================ */

/* Sõnumi ala wrapper (label + textarea + submit) */
.wp-container-content-91e0b0f7,
.site-footer .form-container .wp-block-group:has(.sonum-label),
.site-footer .form-container .is-layout-flex:has(.sonum-label) {
  position: relative !important;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 16px;
  row-gap: 0;
  align-items: start;
}

/* "Sõnum:" label koos dotted joonega all */
.sonum-label {
  color: var(--color-white);
  margin: 0;
  padding: 0;
  line-height: 28px;
  /* background-image: linear-gradient(to right, var(--color-white-90) 50%, transparent 50%); */
  background-size: 4px 2px;
  background-repeat: repeat-x;
  background-position: 0 100%;
}

/* Textarea - dotted joon iga rea all */
textarea#Message,
textarea.sonum-tekst,
.site-footer textarea.sonum-tekst,
.jet-form-builder textarea.sonum-tekst,
#Message.sonum-tekst {
  --row-h: 28px !important;
  width: 100% !important;
  min-height: calc(var(--row-h) * 3) !important;
  padding: 0px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='28' viewBox='0 0 4 28'%3E%3Crect x='0' y='26' width='2' height='2' fill='rgba(255,255,255,0.9)'/%3E%3C/svg%3E") !important;
  background-size: 4px 28px !important;
  background-position: 0 0 !important;
  background-repeat: repeat !important;
  color: var(--color-white) !important;
  line-height: 28px !important;
  resize: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.msg-area {
  grid-column: 1 / 4;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

.msg-input-line {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  width: 100% !important;
  background: transparent !important;
  box-shadow: none !important;
}

.msg-label {
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.msg-textarea {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  border: none !important;
  border-bottom: var(--dotted-border) !important;
  padding: 4px 0 2px 0 !important;
  margin: 0 !important;
  background: transparent !important;
  font-size: var(--form-font-size) !important;
  color: var(--color-white) !important;
  font-family: inherit !important;
  height: auto !important;
  resize: none !important;
  overflow: hidden !important;
  outline: none !important;
}

.msg-textarea:focus {
  border-bottom: var(--dotted-border-focus) !important;
  box-shadow: none !important;
}

.site-footer .form-container .msg-textarea {
  border-bottom: var(--dotted-border) !important;
}

.site-footer .form-container .msg-textarea:focus {
  border-bottom: var(--dotted-border-focus) !important;
}

.submit-btn {
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  padding: 8px 12px !important;
  font-size: var(--form-font-size) !important;
}

.saada-sonum {
  position: absolute !important;
  right: 0 !important;
  bottom: 8px !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 11px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  outline: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  z-index: 10 !important;
  white-space: nowrap !important;
  width: auto !important;
  min-width: max-content !important;
}

/* Submit row peitmine - nupp on nüüd textarea peal */
.site-footer .form-container .jet-form-builder-row.field-type-submit-field {
  position: absolute !important;
  right: 0 !important;
  bottom: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  min-width: max-content !important;
  display: block !important;
}

/* Submit wrapper */
.site-footer .form-container .jet-form-builder__submit-wrap,
.site-footer .form-container .jet-form-builder__action-button-wrapper {
  width: auto !important;
  min-width: max-content !important;
}

.saada-sonum::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url("../images/send.svg") no-repeat center;
  background-size: contain;
}

.saada-sonum:hover {
  opacity: 0.8;
}

.sonum-icon,
.send-icon {
  width: 16px !important;
  height: 16px !important;
  display: inline-block !important;
}

.send-icon {
  margin-left: 6px !important;
  vertical-align: middle !important;
  opacity: 1 !important;
}

/* ============================================
   Animations
   ============================================ */
@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(80px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInDown {
  from {
    opacity: 0;
    transform: translateY(-80px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Scroll animation classes */
.scroll-animate {
  opacity: 0;
  animation-fill-mode: both;
}

.scroll-animate.animate-in-view {
  animation-duration: 0.8s;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Different animation variations */
.scroll-animate.slide-up.animate-in-view {
  animation-name: slideInUp;
}

.scroll-animate.slide-down.animate-in-view {
  animation-name: slideInDown;
}

.scroll-animate.slide-left.animate-in-view {
  animation-name: slideInLeft;
}

.scroll-animate.slide-right.animate-in-view {
  animation-name: slideInRight;
}

.scroll-animate.fade-scale.animate-in-view {
  animation-name: fadeInScale;
}

/* ============================================
   Layout - Full Width
   ============================================ */
body.home main {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}



/* ============================================
   Footer Layout
   ============================================ */
.site-footer,
.ast-footer-wrapper,
.ast-footer-overlay,
.ast-builder-footer-wrap {
  min-height: 100vh;
  display: flex !important;
  flex-direction: column;
}

.site-footer > *:first-child,
.site-footer > *:last-child {
  flex: 0 0 auto;
}

.site-footer > *:nth-child(2) {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.form-container {
  margin: auto;
}

/* ============================================
   Footer Form Fields
   ============================================ */
.site-footer .form-container .jet-form-builder-row {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: center !important;
  gap: 16px !important;
  width: 100% !important;
  margin-bottom: 16px !important;
  padding: 0 !important;
}

.site-footer .form-container .jet-form-builder-row:not(.field-type-submit-field):not(.field-type-textarea-field) {
  border-bottom: var(--dotted-border) !important;
}

/* Textarea row - täislaius, ilma gridita */
.site-footer .form-container .jet-form-builder-row.field-type-textarea-field {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  margin-bottom: 0 !important;
  position: relative !important;
}

.site-footer .form-container .jet-form-builder-row.field-type-textarea-field .jet-form-builder__field-wrap {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  grid-column: unset !important;
}

.site-footer .form-container .jet-form-builder__label {
  white-space: nowrap !important;
  padding: 0 !important;
  margin: 0 !important;
  grid-column: 1 !important;
}

.site-footer .form-container .jet-form-builder__field-wrap {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  grid-column: 2 !important;
}

.site-footer .form-container .jet-form-builder input,
.site-footer .form-container .jet-form-builder textarea,
.site-footer .form-container .jet-form-builder select {
  width: 100% !important;
  box-sizing: border-box !important;
}

.site-footer .form-container .jet-form-builder input[type="text"],
.site-footer .form-container .jet-form-builder input[type="email"],
.site-footer .form-container .jet-form-builder input[type="tel"],
.site-footer .form-container .jet-form-builder textarea,
.site-footer .form-container .jet-form-builder select {
  background: transparent !important;
  color: var(--color-white) !important;
  border: none !important;
  padding: 6px 0 !important;
  appearance: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.site-footer .form-container .jet-form-builder input:focus,
.site-footer .form-container .jet-form-builder textarea:focus,
.site-footer .form-container .jet-form-builder select:focus {
  border-bottom-color: var(--color-white) !important;
}

.site-footer .form-container .wysiwyg-field {
  min-height: calc(1.4em * 4 + 16px) !important;
  resize: vertical !important;
}

.site-footer .form-container .jet-form-builder ::placeholder {
  color: var(--color-white-60);
  opacity: 1;
}

.site-footer .form-container .mce-top-part,
.site-footer .form-container .mce-statusbar {
  display: none !important;
}

.site-footer .form-container .mce-panel {
  border: 0 !important;
  background: transparent;
}

.site-footer .form-container #wp_editor_Message_ifr {
  background: transparent !important;
  height: calc(var(--row-h) * 4) !important;
  display: block;
  width: 100%;
}

.site-footer .form-container .wp-block-group.has-border-color {
  border: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  background: transparent !important;
}

/* ============================================
   Mobile Responsive
   ============================================ */
@media (max-width: 768px) {
  .site-primary-footer-wrap[data-section="section-primary-footer-builder"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .site-footer .footer-widget-area-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .site-footer .wp-container-core-group-is-layout-6845d0c7 {
    grid-template-columns: 1fr !important;
    padding: 20px !important;
    width: calc(100vw - 40px) !important;
    max-width: calc(100vw - 40px) !important;
    margin-left: calc(-50vw + 50% + 20px) !important;
    margin-right: calc(-50vw + 50% + 20px) !important;
    box-sizing: border-box !important;
  }
  
  .site-footer .wp-container-content-9cfa9a5a {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .form-logo-container {
    width: 120px;
    height: 120px;
    margin: 0 auto !important;
  }
}

/* ============================================
   Accordion
   ============================================ */
.lable {
  border-bottom: 0.5px rgba(1, 1, 1, 0.9);
  grid-gap: 8px;
  padding: 10px 0;
}
details {
  overflow: hidden;
}

details summary::after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: 8px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
  transition: transform 0.3s ease;
}

details[open] summary {
  margin-bottom: 0.5em;
}

details[open] summary::after {
  transform: rotate(180deg);
}

.details-content-wrapper {
  overflow: hidden;
  height: 0;
  opacity: 0;
  transition: height 0.3s ease, opacity 0.3s ease;
}

details[open] .details-content-wrapper {
  height: auto;
  opacity: 1;
}

details p {
  margin: 0;
  padding: 0.5em 0;
}

/* ============================================
   Header
   ============================================ */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 999 !important;
  background: var(--color-white-20) !important;
  backdrop-filter: blur(8px) saturate(100%) !important;
  -webkit-backdrop-filter: blur(8px) saturate(100%) !important;
  border-bottom: 1px solid var(--color-white-20) !important;
  box-shadow: 0 4px 16px 0 rgba(31, 38, 135, 0.08) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.site-header.ast-header-sticked {
  background: var(--color-white-50) !important;
  backdrop-filter: blur(12px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
  box-shadow: 0 4px 16px 0 rgba(31, 38, 135, 0.12) !important;
}

.ast-primary-header-bar {
  background: transparent !important;
}

.site-branding.ast-site-identity {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}

/* ============================================
   Desktop/Tablet Dropdown Menu - Glassmorphism
   ============================================ */
@media (min-width: 545px) {
  /* "Tehtud Tööd" dropdown */
  .ast-builder-menu-1 .main-header-menu .sub-menu,
  .ast-builder-menu .main-header-menu .sub-menu {
    background: var(--color-white-20) !important;
    backdrop-filter: blur(16px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(120%) !important;
    border: 1px solid var(--color-white-20) !important;
    border-top: 0px !important;
    /* box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15) !important;*/
  }
  
  .ast-builder-menu-1 .main-header-menu .sub-menu .menu-link,
  .ast-builder-menu .main-header-menu .sub-menu .menu-link {
    background: transparent !important;
  }
}

/* ============================================
   Mobile Off-Canvas Menu - Glassmorphism
   ============================================ */
@media (max-width: 921px) {
  /* Mobile popup/off-canvas taust - sama taust mis headeril */
  .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
  .ast-mobile-header-wrap .ast-mobile-header-content,
  .ast-desktop-header-content {
    background: var(--color-white-20) !important;
    backdrop-filter: blur(8px) saturate(100%) !important;
    -webkit-backdrop-filter: blur(8px) saturate(100%) !important;
  }
  
  /* "Tehtud Tööd" dropdown mobiilis - läbipaistev taust */
  .ast-builder-menu-mobile .main-header-menu .sub-menu,
  .ast-mobile-popup-content .main-header-menu .sub-menu,
  .ast-mobile-header-content .main-header-menu .sub-menu {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    border: none !important;
  }
  
  .ast-builder-menu-mobile .main-header-menu .sub-menu .menu-link,
  .ast-mobile-popup-content .main-header-menu .sub-menu .menu-link {
    background: transparent !important;
  }
}


/* Blogi/arhiivi/kategooria lehtedel - padding-top header'i jaoks */
body.archive #content,
body.archive .site-content,
body.category #content,
body.category .site-content,
body.blog #content,
body.blog .site-content,
body.page-slug-firmast #content,
body.page-slug-firmast .site-content {
  padding-top: 80px !important;
}

/* Peida site-above-footer-wrap desktopil */
@media (min-width: 768px) {
  .site-above-footer-wrap {
    display: none !important;
  }
}

.site-header .menu-link,
.site-header .site-title a,
.site-header .menu-text {
  text-shadow: 0 1px 2px var(--color-white-30) !important;
}

/* ============================================
   Form Logo Container
   ============================================ */
.form-logo-container {
  width: 150px;
  height: 150px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}

.form-logo-container.wp-block-group {
  padding: 0 !important;
  margin: 0 !important;
}

.form-logo-container figure {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.form-logo-container figure.wp-block-image {
  position: absolute !important;
}

.form-logo-container img {
  max-width: 85% !important;
  max-height: 85% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}

h5.wp-block-heading {
  margin: 4px 0px 0px 0px !important; /* Or 0, or any other value */
}

/* ============================================
   Scroll to Top - Custom SVG Icon
   ============================================ */
#ast-scroll-top {
  background: url('../images/Page_up1.svg') no-repeat center center !important;
  background-size: contain !important;
  width: 50px !important;
  height: 50px !important;
}

#ast-scroll-top .ast-icon,
#ast-scroll-top svg {
  display: none !important;
}


/* Custom Scroll to Top nupp footeris (desktop) */
@media (min-width: 769px) {
  .site-footer {
    position: relative;
  }
  
  .site-footer::after {
    content: "";
    position: absolute;
    top: 80px;
    right: 180px;
    width: 50px;
    height: 50px;
    background: url('../images/Page_up1.svg') no-repeat center center;
    background-size: contain;
    cursor: pointer;
    z-index: 999;
    opacity: 0.9;
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: auto;
  }
  
  .site-footer:hover::after {
    opacity: 1;
  }
}


