/*
Theme Name:   Astra Child
Theme URI:    https://yourwebsite.com/astra-child/
Description:  A fully-featured child theme for the Astra parent theme. Includes custom shortcodes, SEO enhancements, security hardening, and inherits all Astra theme features. Safe for customisation without losing changes on Astra updates.
Author:       Your Name
Author URI:   https://yourwebsite.com
Template:     astra
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  astra-child
Tags:         custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* =====================================================
   ASTRA CHILD THEME - CUSTOM STYLES
   All Astra parent styles load automatically.
   Add your custom CSS below.
===================================================== */

/* ---------- Global Typography Overrides ---------- */
body {
    font-size: 16px;
    line-height: 1.7;
}

/* ---------- Custom Shortcode Styles ---------- */

/* [btn] shortcode */
.ac-btn {
    display: inline-block;
    padding: 12px 28px;
    border-radius: 4px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}
.ac-btn-primary   { background: var(--e-global-color-primary, #0274be); color: #fff; }
.ac-btn-secondary { background: var(--e-global-color-secondary, #61CE70); color: #fff; }
.ac-btn-outline   { background: transparent; border-color: var(--e-global-color-primary, #0274be); color: var(--e-global-color-primary, #0274be); }
.ac-btn:hover     { opacity: 0.88; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.15); }

/* [alert] shortcode */
.ac-alert {
    padding: 14px 18px;
    border-left: 4px solid;
    border-radius: 4px;
    margin: 18px 0;
    font-size: 15px;
}
.ac-alert-info    { background: #e8f4fd; border-color: #2196F3; color: #1a5276; }
.ac-alert-success { background: #e9f7ef; border-color: #27ae60; color: #1e8449; }
.ac-alert-warning { background: #fef9e7; border-color: #f39c12; color: #9a7d0a; }
.ac-alert-danger  { background: #fdedec; border-color: #e74c3c; color: #922b21; }

/* [badge] shortcode */
.ac-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    vertical-align: middle;
}
.ac-badge-primary { background: #0274be; color: #fff; }
.ac-badge-success { background: #27ae60; color: #fff; }
.ac-badge-warning { background: #f39c12; color: #fff; }
.ac-badge-danger  { background: #e74c3c; color: #fff; }
.ac-badge-dark    { background: #2c3e50; color: #fff; }

/* [card] shortcode */
.ac-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px;
    margin: 16px 0;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    transition: box-shadow 0.3s ease;
}
.ac-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.12); }
.ac-card-title { font-size: 1.2em; font-weight: 700; margin-bottom: 10px; }

/* [highlight] shortcode */
.ac-highlight { background: #fff176; padding: 1px 4px; border-radius: 2px; }

/* [tooltip] shortcode */
.ac-tooltip-wrap { position: relative; display: inline-block; border-bottom: 1px dashed #666; cursor: help; }
.ac-tooltip-wrap .ac-tooltip-text {
    visibility: hidden;
    width: 200px;
    background: #333;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 8px;
    position: absolute;
    z-index: 9999;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 13px;
    opacity: 0;
    transition: opacity .3s;
}
.ac-tooltip-wrap:hover .ac-tooltip-text { visibility: visible; opacity: 1; }

/* [divider] shortcode */
.ac-divider { border: none; border-top: 2px solid #e0e0e0; margin: 28px 0; }
.ac-divider-dashed { border-top-style: dashed; }
.ac-divider-dotted { border-top-style: dotted; }

/* [progress] shortcode */
.ac-progress-wrap { background: #e0e0e0; border-radius: 20px; overflow: hidden; height: 18px; margin: 8px 0 14px; }
.ac-progress-bar  { height: 100%; background: #0274be; border-radius: 20px; transition: width 1s ease; display: flex; align-items: center; justify-content: flex-end; padding-right: 8px; }
.ac-progress-label { font-size: 11px; color: #fff; font-weight: 700; }

/* [testimonial] shortcode */
.ac-testimonial {
    background: #f9f9f9;
    border-left: 4px solid #0274be;
    padding: 20px 24px;
    border-radius: 6px;
    margin: 20px 0;
    font-style: italic;
}
.ac-testimonial-author { margin-top: 10px; font-style: normal; font-weight: 700; font-size: 14px; color: #555; }

/* [columns] shortcode */
.ac-columns { display: flex; flex-wrap: wrap; gap: 20px; margin: 20px 0; }
.ac-column  { flex: 1; min-width: 200px; }

/* [notice] shortcode */
.ac-notice {
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 6px;
    padding: 14px 18px;
    margin: 16px 0;
    font-size: 15px;
}

/* [review] shortcode */
.ac-review-box {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px;
    margin: 20px 0;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.ac-review-title  { font-size: 1.2em; font-weight: 700; margin: 0 0 10px; }
.ac-review-rating { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.ac-review-score  { font-size: 1.6em; font-weight: 700; color: #f5a623; }
.ac-review-sep    { color: #ccc; }
.ac-review-count  { color: #888; font-size: 14px; }
.ac-review-body   { font-size: 15px; line-height: 1.7; }

/* Star ratings (shared by [testimonial] and [review]) */
.ac-star           { font-size: 20px; line-height: 1; }
.ac-star-filled    { color: #f5a623; }
.ac-star-empty     { color: #ddd; }
.ac-testimonial-avatar { width: 48px; height: 48px; border-radius: 50%; margin-right: 12px; vertical-align: middle; object-fit: cover; }
.ac-testimonial-role   { font-size: 13px; color: #888; margin-left: 6px; }

/* [faq] with <details>/<summary> — SEO-native HTML5 accordion */
.ac-faq { margin: 20px 0; }

.ac-faq-item {
    border-bottom: 1px solid #e8e8e8;
    overflow: hidden;
}
.ac-faq-item:first-child { border-top: 1px solid #e8e8e8; }

/* Remove default browser triangle marker */
.ac-faq-item > summary { list-style: none; }
.ac-faq-item > summary::-webkit-details-marker { display: none; }

.ac-faq-q {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 4px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    color: #1a1a1a;
    gap: 12px;
    outline: none;
}
.ac-faq-q:hover { color: #0274be; }
.ac-faq-q:focus-visible { outline: 2px solid #0274be; outline-offset: 2px; border-radius: 2px; }

/* Animated +/× icon */
.ac-faq-icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #0274be;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, background 0.2s ease;
    position: relative;
}
.ac-faq-icon::before,
.ac-faq-icon::after {
    content: '';
    position: absolute;
    background: #0274be;
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.2s;
}
.ac-faq-icon::before { width: 10px; height: 2px; }
.ac-faq-icon::after  { width: 2px; height: 10px; }

/* When open: rotate × */
.ac-faq-item[open] .ac-faq-icon { background: #0274be; }
.ac-faq-item[open] .ac-faq-icon::before,
.ac-faq-item[open] .ac-faq-icon::after { background: #fff; }
.ac-faq-item[open] .ac-faq-icon::after { transform: rotate(90deg); opacity: 0; }

.ac-faq-a {
    padding: 0 4px 18px;
    font-size: 15px;
    line-height: 1.75;
    color: #444;
    animation: acFaqSlide 0.25s ease;
}
@keyframes acFaqSlide {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* [countdown] shortcode */
.ac-countdown { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin: 20px 0; }
.ac-countdown-item { text-align: center; background: #0274be; color: #fff; border-radius: 8px; padding: 12px 18px; min-width: 70px; }
.ac-countdown-number { font-size: 2em; font-weight: 700; display: block; }
.ac-countdown-label  { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }

/* [breadcrumb] shortcode */
.ac-breadcrumb { font-size: 14px; color: #888; margin-bottom: 16px; }
.ac-breadcrumb a { color: #0274be; text-decoration: none; }
.ac-breadcrumb span { margin: 0 6px; }

/* ---------- Security Notice Hidden ---------- */
#wp-admin-bar-wp-logo { display: none !important; }

/* ---------- Print Styles ---------- */
@media print {
    .ac-btn, .no-print, .ast-header, .ast-footer-widget-area { display: none !important; }
    body { font-size: 12pt; }
}

/* ---------- Responsive Utilities ---------- */
@media (max-width: 768px) {
    .ac-columns { flex-direction: column; }
    .ac-countdown { gap: 10px; }
    .ac-countdown-item { min-width: 55px; padding: 10px 12px; }
}
