/*
 Theme Name: Pati Fotografuje Theme
 Author: Grafela
 Description: Lekki, minimalistyczny motyw przygotowany pod Elementor dla marki Pati Fotografuje. Ustawia szerokość treści 1400px, typografię i bazową kolorystykę.
 Version: 1.1
 License: GNU General Public License v2 or later
 License URI: https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain: pati-fotografuje-theme
*/

:root {
    --pf-color-primary: #554640;
    --pf-color-secondary: #24211C;
    --pf-color-accent: #AF937C;
    --pf-color-background: #FFFDFB;
    --pf-color-muted: #E6DED4;

    --pf-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --pf-font-heading: "Cormorant Garamond", "Times New Roman", serif;
    --pf-font-ui: "Lato", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    --pf-content-width: 1400px;
}

/* Reset / base */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--pf-font-body);
    font-size: 18px;
    line-height: 1.6;
    color: #6C5A54;
    background-color: var(--pf-color-background);
}

/* Wrapper */
.site {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-main {
    flex: 1 0 auto;
}

.site-footer {
    flex-shrink: 0;
}

/* Container */
.site-container {
    width: 100%;
    max-width: var(--pf-content-width);
    margin-left: auto;
    margin-right: auto;
}

/* Sections */
.pf-section {
    padding: 100px 0;
}

@media (max-width: 1024px) {
    .pf-section {
        padding: 80px 20px;
    }
    .site-container {
        padding-left: 0;
        padding-right: 0;
    }
}

@media (max-width: 767px) {
    body {
        font-size: 16px;
    }
    .pf-section {
        padding: 60px 20px;
    }
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--pf-font-heading);
    color: var(--pf-color-primary);
    margin-top: 0;
    margin-bottom: 0.5em;
}

h1 {
    font-size: 52px;
    line-height: 1.15;
}
h2 {
    font-size: 36px;
    line-height: 1.25;
}
h3 {
    font-size: 28px;
    line-height: 1.3;
}

p {
    margin-top: 0;
    margin-bottom: 1em;
}

.small-text {
    font-size: 14px;
    line-height: 1.5;
}

/* Responsive heading sizes */
@media (max-width: 1024px) {
    h1 { font-size: 40px; line-height: 1.2; }
    h2 { font-size: 30px; }
    h3 { font-size: 24px; }
}

@media (max-width: 767px) {
    h1 { font-size: 30px; line-height: 1.25; }
    h2 { font-size: 24px; line-height: 1.3; }
    h3 { font-size: 20px; line-height: 1.35; }
}

/* Links */
a {
    color: var(--pf-color-primary);
    text-decoration: none;
}

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

/* Navigation */
.site-header {
    background-color: #FFFFFF;
    border-bottom: 1px solid var(--pf-color-muted);
}

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
}

.site-branding {
    font-family: var(--pf-font-heading);
    font-size: 22px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pf-color-primary);
}

.primary-menu {
    display: flex;
    gap: 24px;
    font-family: var(--pf-font-ui);
    font-size: 15px;
}

.primary-menu a {
    position: relative;
    padding-bottom: 4px;
}

.primary-menu a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 1px;
    background-color: var(--pf-color-secondary);
    transition: width 0.2s ease;
}

.primary-menu a:hover::after {
    width: 100%;
}

/* Mobile nav basic stacking */
@media (max-width: 767px) {
    .site-header-inner {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
        padding: 14px 0;
    }
    .primary-menu {
        flex-wrap: wrap;
        gap: 12px 20px;
        font-size: 14px;
    }
}

/* Buttons (also targets Elementor buttons) */
.button,
.button-primary,
.elementor-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    border-radius: 4px;
    border: none;
    background-color: var(--pf-color-secondary);
    color: var(--pf-color-primary);
    font-family: var(--pf-font-ui);
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease;
}

.button:hover,
.button-primary:hover,
.elementor-button:hover {
    background-color: var(--pf-color-accent);
    color: #FFFCE8;
    transform: translateY(-1px);
}

.button--outline {
    background-color: transparent;
    border: 1px solid var(--pf-color-primary);
    color: var(--pf-color-primary);
}

.button--outline:hover {
    background-color: var(--pf-color-primary);
    color: #FFFCE8;
}

/* Elementor alignment tweaks for mobile */
@media (max-width: 767px) {
    .elementor-widget-button .elementor-button {
        width: 100%;
    }
}

/* Footer */
.site-footer {
    background-color: var(--pf-color-primary);
    color: #FFFCE8;
    padding: 40px 0;
    font-size: 14px;
}

.site-footer a {
    color: #FFFCE8;
}

.site-footer a:hover {
    color: var(--pf-color-secondary);
}
