/*
Theme Name: TIS GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.6.1.1767115677
Updated: 2025-12-30 17:27:57

*/
/* =====================================================
   Global Layout Variables
   ===================================================== */

:root {
  --layout-max-width: 1200px;
  --layout-gutter: clamp(1rem, 5vw, 2.5rem);
  --section-padding: clamp(3rem, 8vw, 6rem);
}

/* =====================================================
   Standard Grid Rules
   ===================================================== */

.component-hero .gb-grid-wrapper,
.component-accordion .gb-grid-wrapper,
.component-section .gb-grid-wrapper {
  max-width: var(--layout-max-width);
  margin-inline: auto;
  gap: clamp(1.5rem, 4vw, 3rem);
}


/* =====================================================
   Accordion Component — Premium Style
   Core Details Block | Drop-in CSS
   ===================================================== */

.component-accordion {
  --acc-bg: #ffffff;
  --acc-border: #e5e7eb;
  --acc-radius: 12px;
  --acc-shadow: 0 10px 30px rgba(0,0,0,0.06);
  --acc-accent: #4f46e5; /* Indigo by default */
  --acc-text: #111827;
  --acc-muted: #6b7280;

  display: grid;
  gap: 1rem;
}

/* Card-style accordion items */
.component-accordion details {
  background: var(--acc-bg);
  border: 1px solid var(--acc-border);
  border-radius: var(--acc-radius);
  box-shadow: var(--acc-shadow);
  overflow: hidden;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

/* Hover lift */
.component-accordion details:hover {
  box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}

/* Title bar */
.component-accordion summary {
  cursor: pointer;
  list-style: none;
  padding: 1.25rem 1.5rem;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--acc-text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  position: relative;
}

/* Remove default marker */
.component-accordion summary::-webkit-details-marker {
  display: none;
}

/* Left accent bar */
.component-accordion summary::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 100%;
  background: transparent;
  transition: background 0.25s ease;
}

/* Chevron icon (modern) */
.component-accordion summary::after {
  content: "";
  width: 0.6rem;
  height: 0.6rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
  margin-left: auto;
  opacity: 0.7;
}

/* Open state */
.component-accordion details[open] {
  border-color: var(--acc-accent);
}

.component-accordion details[open] summary {
  color: var(--acc-accent);
}

.component-accordion details[open] summary::before {
  background: var(--acc-accent);
}

.component-accordion details[open] summary::after {
  transform: rotate(-135deg);
}

/* Content panel */
.component-accordion .wp-block-details__content {
  padding: 1.25rem 1.5rem 1.5rem;
  color: var(--acc-muted);
  line-height: 1.65;
  animation: accordionReveal 0.35s ease;
}

/* Content typography tweaks */
.component-accordion .wp-block-details__content p:last-child {
  margin-bottom: 0;
}

/* Smooth reveal */
@keyframes accordionReveal {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Keyboard focus */
.component-accordion summary:focus-visible {
  outline: 3px solid var(--acc-accent);
  outline-offset: 3px;
}

/* ============================================
   Minimal Variant (Optional)
   ============================================ */

.component-accordion.is-minimal details {
  box-shadow: none;
  border-radius: 0;
}

.component-accordion.is-minimal summary {
  padding-left: 0;
  padding-right: 0;
}

.component-accordion.is-minimal .wp-block-details__content {
  padding-left: 0;
  padding-right: 0;
}
/* =====================================================
   Hero (ATF) Component — Image Split
   ===================================================== */

.component-hero {
  --hero-bg: #0f172a;
  --hero-text: #ffffff;
  --hero-accent: #4f46e5;

  padding: clamp(4rem, 8vw, 7rem) 0;
  background: linear-gradient(
    120deg,
    #0f172a 0%,
    #020617 100%
  );
  color: var(--hero-text);
}

.component-hero .hero-content {
  max-width: 36rem;
  padding:5em;
}

.component-hero h1 {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  line-height: 1.1;
  margin-bottom: 1rem;
}

.component-hero p {
  font-size: 1.125rem;
  opacity: 0.85;
  margin-bottom: 2rem;
}

.component-hero .wp-block-button__link {
  background: var(--hero-accent);
  color: #fff;
  padding: 0.9rem 1.5rem;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
}

.component-hero img {
  border-radius: 1rem;
  box-shadow: 0 30px 60px rgba(0,0,0,0.35);
}

