/*
Theme Name: Docuwall
Theme URI: https://docuwall.com
Author: Docuwall Team
Author URI: https://docuwall.com
Description: A modern, professional theme for the Docuwall secure document sharing and payment platform
Version: 1.0.0
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: docuwall
Tags: business, portfolio, modern, clean
*/

/* Custom Styles */
.gradient-text {
    background: linear-gradient(120deg, #4F46E5, #06B6D4);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    padding: 0 0 15px 0;
}

.hero-pattern {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
}

/* Contact Form 7 Styling */
.docuwall-contact-form .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.docuwall-contact-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.docuwall-contact-form input[type="text"],
.docuwall-contact-form input[type="email"],
.docuwall-contact-form input[type="tel"],
.docuwall-contact-form input[type="url"],
.docuwall-contact-form select,
.docuwall-contact-form textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #D1D5DB;
    border-radius: 0.375rem;
    font-size: 1rem;
    line-height: 1.5;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.docuwall-contact-form input[type="text"]:focus,
.docuwall-contact-form input[type="email"]:focus,
.docuwall-contact-form input[type="tel"]:focus,
.docuwall-contact-form input[type="url"]:focus,
.docuwall-contact-form select:focus,
.docuwall-contact-form textarea:focus {
    outline: none;
    border-color: #4F46E5;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
}

.docuwall-contact-form textarea {
    min-height: 150px;
    resize: vertical;
}

.docuwall-contact-form .wpcf7-submit {
    width: 100%;
    padding: 0.75rem 1.5rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    border-radius: 0.375rem;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.docuwall-contact-form .wpcf7-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

.docuwall-contact-form .wpcf7-not-valid-tip {
    color: #DC2626;
    font-size: 0.875rem;
    margin-top: 0.25rem;
    display: block;
}

.docuwall-contact-form .wpcf7-response-output {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 0.375rem;
    font-size: 0.875rem;
}

.docuwall-contact-form .wpcf7-mail-sent-ok {
    background-color: #D1FAE5;
    border: 1px solid #10B981;
    color: #065F46;
}

.docuwall-contact-form .wpcf7-validation-errors,
.docuwall-contact-form .wpcf7-mail-sent-ng {
    background-color: #FEE2E2;
    border: 1px solid #DC2626;
    color: #991B1B;
}

.docuwall-contact-form label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    margin-bottom: 0.5rem;
}

.docuwall-contact-form .wpcf7-spinner {
    margin-left: 1rem;
}

/* Cloudflare Turnstile positioning */
.docuwall-contact-form .cf-turnstile,
.docuwall-contact-form [class*="turnstile"] {
    margin: 1.5rem 0;
    display: flex;
    justify-content: center;
    order: 100; /* Place before submit button */
}

.docuwall-contact-form .wpcf7-submit {
    order: 101; /* Place submit button after Turnstile */
}

/* Blog Pagination Styling */
.page-numbers {
    display: inline-flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.page-numbers li {
    margin: 0 0.25rem;
}

.page-numbers a,
.page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 0.375rem;
    background: white;
    color: #4B5563;
    font-weight: 500;
    transition: all 0.2s;
}

.page-numbers a:hover {
    background: #F3F4F6;
    border-color: #D1D5DB;
    color: #1F2937;
}

.page-numbers .current {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-color: transparent;
    color: white;
}

.page-numbers .prev,
.page-numbers .next {
    font-weight: 600;
}

/* Line clamp utility */
.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Blog Post Content Styling */
.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6 {
    font-weight: 700;
    color: #1F2937;
    line-height: 1.3;
}

.prose h1 {
    font-size: 2.25rem;
    margin-top: 0;
    margin-bottom: 1.5rem;
}

.prose h2 {
    font-size: 1.875rem;
    margin-top: 2.5rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #E5E7EB;
}

.prose h3 {
    font-size: 1.5rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
}

.prose h4 {
    font-size: 1.25rem;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}

.prose h5 {
    font-size: 1.125rem;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
}

.prose h6 {
    font-size: 1rem;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.prose p {
    font-size: 1.125rem;
    line-height: 1.75;
    color: #374151;
    margin-bottom: 1.25rem;
}

.prose ul,
.prose ol {
    font-size: 1.125rem;
    line-height: 1.75;
    color: #374151;
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}

.prose ul {
    list-style-type: disc;
}

.prose ol {
    list-style-type: decimal;
}

.prose li {
    margin-bottom: 0.5rem;
}

.prose li > ul,
.prose li > ol {
    margin-top: 0.5rem;
    margin-bottom: 0;
}

.prose a {
    color: #4F46E5;
    text-decoration: underline;
    transition: color 0.2s;
}

.prose a:hover {
    color: #6366F1;
}

.prose strong {
    font-weight: 600;
    color: #1F2937;
}

.prose em {
    font-style: italic;
}

.prose blockquote {
    border-left: 4px solid #4F46E5;
    padding-left: 1.5rem;
    margin: 1.5rem 0;
    font-style: italic;
    color: #4B5563;
    background: #F9FAFB;
    padding: 1rem 1.5rem;
    border-radius: 0 0.5rem 0.5rem 0;
}

.prose code {
    background: #F3F4F6;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.875em;
    color: #DC2626;
}

.prose pre {
    background: #1F2937;
    color: #F9FAFB;
    padding: 1rem 1.5rem;
    border-radius: 0.5rem;
    overflow-x: auto;
    margin: 1.5rem 0;
}

.prose pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

.prose img {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
    margin: 1.5rem 0;
}

.prose figure {
    margin: 1.5rem 0;
}

.prose figcaption {
    font-size: 0.875rem;
    color: #6B7280;
    text-align: center;
    margin-top: 0.5rem;
}

.prose hr {
    border: 0;
    border-top: 1px solid #E5E7EB;
    margin: 2rem 0;
}

.prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
}

.prose th,
.prose td {
    border: 1px solid #E5E7EB;
    padding: 0.75rem 1rem;
    text-align: left;
}

.prose th {
    background: #F9FAFB;
    font-weight: 600;
}

/* WordPress Block Editor Specific */
.prose .wp-block-heading {
    font-weight: 700;
    color: #1F2937;
}

.prose h3.wp-block-heading {
    font-size: 1.5rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
}

.prose .wp-block-image {
    margin: 1.5rem 0;
}

.prose .wp-block-image img {
    margin: 0;
}

.prose .wp-block-quote {
    border-left: 4px solid #4F46E5;
    padding-left: 1.5rem;
    margin: 1.5rem 0;
    font-style: italic;
}

/* Legal Pages Styling (Terms & Privacy) */
.legal-content h2 {
    font-size: 1.875rem;
    font-weight: 700;
    color: #1F2937;
    margin-top: 3rem;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #E5E7EB;
}

.legal-content h2:first-of-type {
    margin-top: 0;
}

.legal-content h3 {
    font-size: 1.5rem;
    font-weight: 600;
    color: #374151;
    margin-top: 2rem;
    margin-bottom: 1rem;
}

.legal-content p {
    font-size: 1.125rem;
    line-height: 1.75;
    color: #4B5563;
    margin-bottom: 1.25rem;
}

.legal-content ul,
.legal-content ol {
    font-size: 1.125rem;
    line-height: 1.75;
    color: #4B5563;
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}

.legal-content ul {
    list-style-type: disc;
}

.legal-content ol {
    list-style-type: decimal;
}

.legal-content li {
    margin-bottom: 0.5rem;
    padding-left: 0.5rem;
}

.legal-content strong {
    font-weight: 600;
    color: #1F2937;
}

.legal-content a {
    color: #4F46E5;
    text-decoration: underline;
    transition: color 0.2s;
}

.legal-content a:hover {
    color: #6366F1;
}

/* Blog Sidebar Widgets */
.widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.widget ul li {
    margin: 0;
}

.widget ul li a {
    display: block;
    padding: 0.5rem 0;
    transition: color 0.2s;
}

.widget ul li a:hover {
    color: #4F46E5;
}

/* Archive list styling */
.widget ul li:not(:last-child) {
    border-bottom: 1px solid #F3F4F6;
}

/* Search form in sidebar */
.widget .search-form {
    display: flex;
    gap: 0.5rem;
}

.widget .search-form .search-field {
    flex: 1;
    padding: 0.5rem 0.75rem;
    border: 1px solid #D1D5DB;
    border-radius: 0.375rem;
    font-size: 0.875rem;
}

.widget .search-form .search-submit {
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    cursor: pointer;
    transition: transform 0.2s;
}

.widget .search-form .search-submit:hover {
    transform: translateY(-1px);
}

/* Hero Overlay Base */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 1;
}

/* Overlay: None */
.hero-overlay-none {
    display: none;
}

/* Overlay: Solid variants */
.hero-overlay-solid-light {
    background-color: rgba(0, 0, 0, 1);
}

.hero-overlay-solid-medium {
    background-color: rgba(0, 0, 0, 1);
}

.hero-overlay-solid-dark {
    background-color: rgba(0, 0, 0, 1);
}

/* Overlay: Gradient variants */
.hero-overlay-gradient {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 1));
}

.hero-overlay-gradient-radial {
    background: radial-gradient(circle at center, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 1));
}

/* Overlay: Mesh Pattern */
.hero-overlay-mesh {
    background-color: rgba(0, 0, 0, 1);
    background-image: 
        linear-gradient(45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.05) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.05) 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
}

/* Overlay: Dot Pattern */
.hero-overlay-dots {
    background-color: rgba(0, 0, 0, 1);
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.15) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* Overlay: Diagonal Lines */
.hero-overlay-diagonal {
    background-color: rgba(0, 0, 0, 1);
    background-image: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 10px,
        rgba(255, 255, 255, 0.1) 10px,
        rgba(255, 255, 255, 0.1) 20px
    );
}

.hero-pattern-light {
    background-color: #f9fafb;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%234F46E5' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.noise-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='3.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    pointer-events: none;
}

.hero-content {
    position: relative;
    z-index: 2;
}

/* Text Shadow Effects */
.hero-text-shadow-light {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.hero-text-shadow-medium {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.hero-text-shadow-strong {
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.7), 0 1px 3px rgba(0, 0, 0, 0.5);
}

.hero-text-shadow-glow {
    text-shadow: 
        0 0 10px rgba(255, 255, 255, 0.3),
        0 0 20px rgba(255, 255, 255, 0.2),
        0 2px 4px rgba(0, 0, 0, 0.5);
}

.hero-logo {
    opacity: 1;
    transition: opacity 0.3s ease;
}

.hero-logo.fade-out {
    opacity: 0;
}

/* Nav logo opacity is controlled by JavaScript */

.feature-icon {
    color: #4F46E5;
}

.btn-primary {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    transition: all 0.3s ease;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3);
}

/* Navigation Menu Styles */
.menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
}

/* Desktop Menu */
.menu li {
    position: relative;
    margin: 0;
}

.menu > li > a {
    display: block;
    padding: 0.5rem 1rem;
    color: #374151;
    font-weight: 500;
    font-size: 0.9375rem;
    text-decoration: none;
    transition: color 0.2s;
    white-space: nowrap;
}

.menu > li > a:hover,
.menu > li.current-menu-item > a,
.menu > li.current_page_item > a {
    color: #4F46E5;
}

/* Nav logo slide-up animation */
.nav-logo {
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-logo.visible {
    transform: translateY(0);
    opacity: 1;
}

/* Dropdown Menu */
.menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: white;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    border-radius: 0.375rem;
    padding: 0.5rem 0;
    margin-top: 0.5rem;
    list-style: none;
    display: none;
    z-index: 1000;
}

.menu li:hover > .sub-menu {
    display: block;
}

.menu .sub-menu li {
    display: block;
}

.menu .sub-menu a {
    display: block;
    padding: 0.5rem 1rem;
    color: #4B5563;
    text-decoration: none;
    font-size: 0.875rem;
    transition: all 0.2s;
}

.menu .sub-menu a:hover {
    background-color: #F3F4F6;
    color: #4F46E5;
}

/* Mobile Menu */
.mobile-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-menu li {
    display: block;
}

.mobile-menu > li > a {
    display: block;
    padding: 0.75rem 1rem;
    color: #4B5563;
    font-weight: 500;
    text-decoration: none;
    border-radius: 0.375rem;
    margin: 0 0.75rem;
    transition: all 0.2s;
}

.mobile-menu > li > a:hover,
.mobile-menu > li.current-menu-item > a,
.mobile-menu > li.current_page_item > a {
    background-color: #EEF2FF;
    color: #4F46E5;
}

.mobile-menu .sub-menu {
    list-style: none;
    padding-left: 1rem;
}

.mobile-menu .sub-menu a {
    display: block;
    padding: 0.5rem 1rem;
    color: #6B7280;
    font-size: 0.875rem;
    text-decoration: none;
    margin: 0 0.75rem;
}

.mobile-menu .sub-menu a:hover {
    color: #4F46E5;
}

/* Font Awesome Icon Fixes */
.fas, .far, .fab, .fa {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "FontAwesome" !important;
    font-weight: 900;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
}

/* Ensure icons render properly */
i[class*="fa-"] {
    line-height: inherit;
}

/* Team section icon containers */
.team-icon-container {
    min-height: 96px;
    min-width: 96px;
}

/* Smart Slider integration - force slider to fill container */
.n2-section-smartslider {
    height: 100% !important;
    min-height: 600px !important;
}

.n2-section-smartslider .n2-ss-slider-wrapper {
    height: 100% !important;
}

.n2-section-smartslider .n2-ss-slider {
    height: 100% !important;
}

/* Hero section slider background */
.hero-slider-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hero-slider-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.grecaptcha-badge {
    z-index: 9999;
}

/* Pricing Page - Pro Plan */
.pro-plan-card {
    background: linear-gradient(135deg, #f97316 0%, #ef4444 100%) !important;
    border: 2px solid #f97316 !important;
}

.pro-plan-card h3,
.pro-plan-card .text-4xl,
.pro-plan-card p,
.pro-plan-card span,
.pro-plan-card li {
    color: #ffffff !important;
}

.pro-plan-card .checkmark {
    color: #fef3c7 !important; /* yellow-100 for checkmarks */
}

.pro-plan-card .transaction-fee-box {
    background-color: rgba(255, 255, 255, 0.2) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 0.5rem !important;
    padding: 1rem !important;
    margin-bottom: 1.5rem !important;
}

.pro-plan-card .transaction-fee-box p,
.pro-plan-card .transaction-fee-box span,
.pro-plan-card .transaction-fee-box i {
    color: #ffffff !important;
}

.pro-plan-button {
    background-color: #fff7ed !important; /* orange-50 */
    color: #ea580c !important; /* orange-600 */
    border: 2px solid #fb923c !important; /* orange-400 */
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

.pro-plan-button:hover {
    background-color: #ffedd5 !important; /* orange-100 */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
    border-color: #f97316 !important; /* orange-500 */
}

/* Pricing Page - Basic Plan Button Fix */
.basic-plan-button {
    background-color: #f9fafb !important; /* gray-50 */
    color: #1f2937 !important; /* gray-800 */
    border: 2px solid #d1d5db !important; /* gray-300 */
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

.basic-plan-button:hover {
    background-color: #f3f4f6 !important; /* gray-100 */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
    border-color: #9ca3af !important; /* gray-400 */
}
