/*
Theme Name: Cani in Casa Restyle
Theme URI: https://www.caniincasa.it
Author: Caniincasa Team
Author URI: https://www.caniincasa.it
Description: Tema custom restyling per Cani in Casa, con layout unificato per annunci, razze, directory, blog e area utente.
Version: 2.0.2
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: caniincasa
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, responsive-design, mobile-first

Cani in Casa Restyle, Copyright 2026
Cani in Casa Restyle is distributed under the terms of the GNU GPL
*/

/* ==========================================================================
   Base Styles & Reset
   ========================================================================== */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    /* Color Palette - Default */
    --color-primary: #0B7B4B;
    --color-secondary: #173829;
    --color-accent: #D8963A;
    --color-text: #1D2721;
    --color-text-light: #5F6B64;
    --color-bg: #ffffff;
    --color-bg-light: #F7FAF7;
    --color-border: #DDE6DF;

    /* Additional Colors */
    --color-white: #ffffff;
    --color-background: #FBFCFA;
    --color-primary-dark: #075E3A;
    --color-accent-dark: #B87522;
    --color-secondary-light: #2B5E43;
    --color-primary-light: #EAF5EE;

    /* Typography */
    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    --font-secondary: 'Lora', Georgia, 'Times New Roman', serif;

    /* Container Widths */
    --container-max-width: 1280px;
    --container-padding-desktop: 60px;
    --container-padding-tablet: 40px;
    --container-padding-mobile: 20px;

    /* Spacing */
    --spacing-xs: 8px;
    --spacing-sm: 16px;
    --spacing-md: 24px;
    --spacing-lg: 32px;
    --spacing-xl: 48px;

    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;

    /* Shadows */
    --shadow-sm: 0 1px 12px rgba(23, 56, 41, 0.08);
    --shadow-md: 0 10px 28px rgba(23, 56, 41, 0.10);
    --shadow-lg: 0 18px 48px rgba(23, 56, 41, 0.14);

    /* Transitions */
    --transition-fast: 0.2s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;

    /* Z-index layers */
    --z-header: 1000;
    --z-dropdown: 1020;
    --z-mobile-menu: 1100;
    --z-modal: 1200;
    --z-overlay: 1050;
}

html:root {
    --color-primary: #0B7B4B !important;
    --color-secondary: #173829 !important;
    --color-accent: #D8963A !important;
    --color-text: #1D2721 !important;
    --color-text-light: #5F6B64 !important;
    --color-bg-light: #F7FAF7 !important;
    --color-border: #DDE6DF !important;
    --color-primary-dark: #075E3A !important;
    --color-accent-dark: #B87522 !important;
    --color-secondary-light: #2B5E43 !important;
    --color-primary-light: #EAF5EE !important;
}

body {
    font-family: var(--font-primary);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-secondary);
    font-weight: 700;
    line-height: 1.18;
    margin-bottom: var(--spacing-md);
    color: var(--color-secondary);
    letter-spacing: 0;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 2rem;
}

h3 {
    font-size: 1.75rem;
}

h4 {
    font-size: 1.5rem;
}

h5 {
    font-size: 1.25rem;
}

h6 {
    font-size: 1rem;
}

p {
    margin-bottom: var(--spacing-md);
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-accent);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   Layout Containers
   ========================================================================== */

.container {
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding-desktop);
    width: 100%;
}

.container-fluid {
    width: 100%;
    padding: 0 var(--container-padding-desktop);
}

/* ==========================================================================
   Responsive Typography
   ========================================================================== */

@media (max-width: 1024px) {
    :root {
        --container-padding-desktop: var(--container-padding-tablet);
    }

    h1 {
        font-size: 2rem;
    }

    h2 {
        font-size: 1.75rem;
    }

    h3 {
        font-size: 1.5rem;
    }
}

@media (max-width: 768px) {
    :root {
        --container-padding-desktop: var(--container-padding-mobile);
    }

    body {
        font-size: 16px;
        /* Minimum to prevent auto-zoom on iOS */
    }

    h1 {
        font-size: 1.75rem;
    }

    h2 {
        font-size: 1.5rem;
    }

    h3 {
        font-size: 1.25rem;
    }
}

/* ==========================================================================
   Global Visual Refresh Overrides
   ========================================================================== */

body,
button,
input,
select,
textarea {
    font-family: var(--font-primary) !important;
}

h1,
.page-title,
.archive-title,
.entry-title,
.annuncio-title,
.hero-title {
    font-family: var(--font-secondary) !important;
    letter-spacing: 0 !important;
}

h2,
h3,
h4,
h5,
h6,
.section-title,
.widget-title,
.card-title,
.post-title {
    font-family: var(--font-primary) !important;
    letter-spacing: 0 !important;
}

.page-hero,
.archive-header,
.annuncio-hero,
.single-hero {
    background: linear-gradient(135deg, #edf6ef 0%, #ffffff 58%, #f7eadb 100%) !important;
    color: var(--color-secondary) !important;
}

.page-hero h1,
.page-hero .page-title,
.page-hero .archive-title,
.archive-header .archive-title,
.archive-header h1,
.annuncio-hero .annuncio-title,
.single-hero h1,
.single-hero .entry-title {
    color: var(--color-secondary) !important;
}

.page-hero p,
.page-hero .page-description,
.page-hero .archive-description,
.archive-header .archive-description,
.annuncio-hero .annuncio-subtitle,
.single-hero .entry-meta,
.single-hero .entry-subtitle {
    color: var(--color-text-light) !important;
}

.btn-primary,
button.btn-primary,
input[type="submit"],
.search-submit {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: #ffffff !important;
}

.btn-primary:hover,
button.btn-primary:hover,
input[type="submit"]:hover,
.search-submit:hover {
    background-color: var(--color-primary-dark) !important;
    border-color: var(--color-primary-dark) !important;
}

.cta-final-section {
    background: var(--color-primary) !important;
}

body .top-bar-nav .top-bar-cta,
body a.top-bar-cta,
body button.top-bar-cta {
    background: var(--color-primary) !important;
    color: #ffffff !important;
    border-radius: 999px !important;
    box-shadow: 0 8px 20px rgba(11, 123, 75, 0.18) !important;
}

body .top-bar-nav .top-bar-cta:hover,
body a.top-bar-cta:hover,
body button.top-bar-cta:hover {
    background: var(--color-primary-dark) !important;
    color: #ffffff !important;
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.mt-0 {
    margin-top: 0;
}

.mt-sm {
    margin-top: var(--spacing-sm);
}

.mt-md {
    margin-top: var(--spacing-md);
}

.mt-lg {
    margin-top: var(--spacing-lg);
}

.mt-xl {
    margin-top: var(--spacing-xl);
}

.mb-0 {
    margin-bottom: 0;
}

.mb-sm {
    margin-bottom: var(--spacing-sm);
}

.mb-md {
    margin-bottom: var(--spacing-md);
}

.mb-lg {
    margin-bottom: var(--spacing-lg);
}

.mb-xl {
    margin-bottom: var(--spacing-xl);
}

.d-none {
    display: none;
}

.d-block {
    display: block;
}

.d-flex {
    display: flex;
}

.d-grid {
    display: grid;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
    display: inline-block;
    padding: 12px 24px;
    min-height: 44px;
    /* Touch-friendly minimum */
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-normal);
    text-decoration: none;
}

.btn-primary {
    background-color: var(--color-primary);
    color: var(--color-secondary);
    border-color: var(--color-primary);
}

.btn-primary:hover {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-secondary {
    background-color: transparent;
    color: var(--color-secondary);
    border-color: var(--color-secondary);
}

.btn-secondary:hover {
    background-color: var(--color-secondary);
    color: white;
}

/* ==========================================================================
   Mobile-specific styles
   ========================================================================== */

@media (max-width: 768px) {
    .mobile-hide {
        display: none !important;
    }

    .mobile-show {
        display: block !important;
    }

    .btn {
        width: 100%;
        min-height: 48px;
        /* Larger touch targets on mobile */
    }
}

@media (min-width: 769px) {
    .desktop-hide {
        display: none !important;
    }
}

/* ==========================================================================
   My Dogs Section
   ========================================================================== */

.my-dogs-section {
    padding: var(--spacing-xl) 0;
    background-color: var(--color-bg-light);
    border-top: 1px solid var(--color-border);
}

.my-dogs-content-wrapper {
    display: flex;
    align-items: center;
    gap: var(--spacing-xl);
}

.my-dogs-visual {
    flex: 1;
    display: flex;
    justify-content: center;
}

.my-dogs-illustration img {
    max-width: 100%;
    height: auto;
    max-height: 400px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.my-dogs-info {
    flex: 1;
    text-align: left;
}

.my-dogs-info .section-title {
    text-align: left;
    justify-content: flex-start;
}

.my-dogs-description {
    font-size: 1.1rem;
    color: var(--color-text-light);
    margin-bottom: var(--spacing-lg);
}

.my-dogs-features {
    list-style: none;
    margin-bottom: var(--spacing-lg);
}

.my-dogs-features li {
    display: flex;
    align-items: center;
    margin-bottom: var(--spacing-sm);
    font-size: 1.05rem;
    font-weight: 600;
}

.my-dogs-features .feature-icon {
    margin-right: var(--spacing-sm);
    font-size: 1.5rem;
}

/* Responsive */
@media (max-width: 992px) {
    .my-dogs-content-wrapper {
        flex-direction: column;
        text-align: center;
    }

    .my-dogs-visual {
        margin-bottom: var(--spacing-lg);
    }

    .my-dogs-features {
        display: inline-block;
        text-align: left;
    }
}

/* ==========================================================================
   Container
   ========================================================================== */

.container {
    max-width: var(--container-max-width, 1280px);
    margin: 0 auto;
    padding: 0 20px;
    width: 100%;
}

/* ==========================================================================
   Boxed Layout
   ========================================================================== */

body.layout-boxed {
    background-color: #e9ecef;
    /* Light gray background outside */
}

body.layout-boxed #page {
    max-width: var(--container-max-width);
    margin: 0 auto;
    background-color: var(--color-bg);
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
}

body.layout-boxed .site-header.sticky-header {
    max-width: var(--container-max-width);
    margin: 0 auto;
    left: auto;
    right: auto;
}

body.layout-boxed .mobile-bottom-nav {
    max-width: var(--container-max-width);
    margin: 0 auto;
    left: auto;
    right: auto;
}
