@import url("https://fonts.googleapis.com/css2?family=Actor&family=Open+Sans:wght@300;400;600;700;800&family=Rubik:wght@400;500;700&display=swap");

:root {
    --hamisa--aspect-ratio--square: 1;
    --hamisa--aspect-ratio--4-3: 4 / 3;
    --hamisa--aspect-ratio--3-4: 3 / 4;
    --hamisa--aspect-ratio--3-2: 3 / 2;
    --hamisa--aspect-ratio--2-3: 2 / 3;
    --hamisa--aspect-ratio--16-9: 16 / 9;
    --hamisa--aspect-ratio--9-16: 9 / 16;
    --hamisa--black: #000000;
    --hamisa--cyan-bluish-gray: #abb8c3;
    --hamisa--white: #ffffff;
    --hamisa--pale-pink: #f78da7;
    --hamisa--vivid-red: #cf2e2e;
    --hamisa--luminous-vivid-orange: #ff6900;
    --hamisa--luminous-vivid-amber: #fcb900;
    --hamisa--light-green-cyan: #7bdcb5;
    --hamisa--vivid-green-cyan: #00d084;
    --hamisa--pale-cyan-blue: #8ed1fc;
    --hamisa--vivid-cyan-blue: #0693e3;
    --hamisa--vivid-purple: #9b51e0;
    --hamisa--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg, rgb(6, 147, 227) 0%, rgb(155, 81, 224) 100%);
    --hamisa--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg, rgb(122, 220, 180) 0%, rgb(0, 208, 130) 100%);
    --hamisa--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg, rgb(252, 185, 0) 0%, rgb(255, 105, 0) 100%);
    --hamisa--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg, rgb(255, 105, 0) 0%, rgb(207, 46, 46) 100%);
    --hamisa--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg, rgb(238, 238, 238) 0%, rgb(169, 184, 195) 100%);
    --hamisa--gradient--cool-to-warm-spectrum: linear-gradient(135deg, rgb(74, 234, 220) 0%, rgb(151, 120, 209) 20%, rgb(207, 42, 186) 40%, rgb(238, 44, 130) 60%, rgb(251, 105, 98) 80%, rgb(254, 248, 76) 100%);
    --hamisa--gradient--blush-light-purple: linear-gradient(135deg, rgb(255, 206, 236) 0%, rgb(152, 150, 240) 100%);
    --hamisa--gradient--blush-bordeaux: linear-gradient(135deg, rgb(254, 205, 165) 0%, rgb(254, 45, 45) 50%, rgb(107, 0, 62) 100%);
    --hamisa--gradient--luminous-dusk: linear-gradient(135deg, rgb(255, 203, 112) 0%, rgb(199, 81, 192) 50%, rgb(65, 88, 208) 100%);
    --hamisa--gradient--pale-ocean: linear-gradient(135deg, rgb(255, 245, 203) 0%, rgb(182, 227, 212) 50%, rgb(51, 167, 181) 100%);
    --hamisa--gradient--electric-grass: linear-gradient(135deg, rgb(202, 248, 128) 0%, rgb(113, 206, 126) 100%);
    --hamisa--gradient--midnight: linear-gradient(135deg, rgb(2, 3, 129) 0%, rgb(40, 116, 252) 100%);
    --hamisa--font-size--small: 13px;
    --hamisa--font-size--medium: 20px;
    --hamisa--font-size--large: 36px;
    --hamisa--font-size--x-large: 42px;
    --hamisa--spacing--20: 0.44rem;
    --hamisa--spacing--30: 0.67rem;
    --hamisa--spacing--40: 1rem;
    --hamisa--spacing--50: 1.5rem;
    --hamisa--spacing--60: 2.25rem;
    --hamisa--spacing--70: 3.38rem;
    --hamisa--spacing--80: 5.06rem;
    --hamisa--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);
    --hamisa--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);
    --hamisa--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);
    --hamisa--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);
    --hamisa--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);
    --hamisa--font-size--normal: 16px;
    --hamisa--font-size--huge: 42px;
    --hamisa--primary: #7e8736;
    --hamisa--secondary: #f0f0f0;
    --hamisa--tertiary: #f0f0f0;
    --hamisa-warning: #f0ad4e;
    --hamisa-success: #5cb85c;
    --hamisa-success-dark: #4cae4c;
    --hamisa-light: #f0f0f0;
    --hamisa-dark: #333333;
    --hamisa-info: #5bc0de;
    --hamisa-danger: #d9534f;

    --hamisa-brand-primary: #7e8736;
    --hamisa-brand-primary-strong: #656d2b;
    --hamisa-brand-primary-soft: #a0a86a;
    --hamisa-brand-highlight: #2ea3f2;
    --hamisa-text-main: #333333;
    --hamisa-text-body: #666666;
    --hamisa-text-muted: #8f8f8f;
    --hamisa-border: #d9d9d1;
    --hamisa-surface: #ffffff;
    --hamisa-surface-alt: #f4f5ee;
    --hamisa-shadow-soft: 0 14px 40px rgba(38, 42, 17, 0.12);
    --hamisa-button-radius: 1.2rem;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    min-height: 100%;
}

body {
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    color: var(--hamisa-text-body);
    background:
        radial-gradient(circle at 0% 0%, rgba(126, 135, 54, 0.08), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(46, 163, 242, 0.07), transparent 34%),
        linear-gradient(180deg, #fafbf7 0%, #f2f4ea 100%);
}

h1,
h2,
h3,
h4,
h5,
h6,
legend {
    margin-top: 0;
    color: var(--hamisa-text-main);
    font-family: "Actor", "Rubik", Arial, sans-serif;
    letter-spacing: 0.01em;
}

a {
    color: var(--hamisa-brand-primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--hamisa-brand-primary-strong);
}

.main {
    min-height: 100vh;
    padding: clamp(1rem, 3.5vw, 2.5rem) 0;
}

.container {
    width: min(1120px, 94vw);
}

.message {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border-left: 4px solid var(--hamisa-brand-primary);
    background: rgba(126, 135, 54, 0.1);
    color: #4b511f;
}

.message.error {
    border-left-color: var(--hamisa-danger);
    background: rgba(217, 83, 79, 0.1);
    color: #862e2a;
}

.message.success {
    border-left-color: var(--hamisa-success);
    background: rgba(92, 184, 92, 0.14);
    color: #2e6c2e;
}

.form-floating-out {
    position: relative;
    margin: 1rem 0;
}

.form-floating-out > label {
    position: absolute;
    left: 0.72rem;
    top: 50%;
    z-index: 2;
    margin: 0;
    padding: 0 0.32rem;
    border-radius: 0.35rem;
    background: var(--hamisa-surface);
    color: var(--hamisa-text-muted);
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-50%);
    transition: top 0.2s ease, transform 0.2s ease, opacity 0.15s ease, color 0.2s ease, font-size 0.2s ease;
}

.form-floating-out > textarea + label {
    top: 1.2rem;
}

.form-floating-out > :is(input, textarea, select, tel) {
    margin: 0;
}

.form-floating-out > :is(input, textarea, select, tel)::placeholder {
    color: #a0a59a;
}

.form-floating-out:focus-within > :is(input, textarea, tel)::placeholder {
    color: transparent;
}

.form-floating-out > textarea {
    min-height: 132px;
    resize: vertical;
}

.form-floating-out:focus-within > label,
.form-floating-out > input:not(:placeholder-shown) + label,
.form-floating-out > textarea:not(:placeholder-shown) + label,
.form-floating-out > tel:not(:placeholder-shown) + label,
.form-floating-out > select:focus + label,
.form-floating-out > select:valid + label {
    top: 0;
    opacity: 1;
    font-size: 0.74rem;
    color: var(--hamisa-brand-primary);
    font-weight: 400;
    transform: translateY(-50%);
}

.form-floating-out:has(> select option[value=""]:checked):not(:focus-within) > select + label {
    top: 50%;
    opacity: 0;
    font-size: 0.9rem;
    color: var(--hamisa-text-muted);
    transform: translateY(-50%);
}

input[type="email"],
input[type="password"],
input[type="text"],
input[type="tel"],
input[type="search"],
select,
textarea {
    width: 100%;
    padding: 0.7rem 0.8rem;
    border: 1px solid #c9cec2;
    border-radius: 0.55rem;
    background: #fff;
    color: var(--hamisa-text-main);
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 0.97rem;
    outline: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--hamisa-brand-primary);
    box-shadow: 0 0 0 3px rgba(126, 135, 54, 0.18);
    transform: translateY(-1px);
}

body button,
body input[type="submit"],
body .button,
body .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 42px;
    padding: 0.68rem 1.15rem;
    border: 0;
    border-radius: var(--hamisa-button-radius) !important;
    font-family: "Rubik", "Open Sans", Arial, sans-serif;
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: #fff;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 38%),
        linear-gradient(135deg, #8f9840 0%, var(--hamisa-brand-primary) 44%, var(--hamisa-brand-primary-strong) 100%);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

button:hover,
input[type="submit"]:hover,
.button:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(83, 90, 36, 0.34);
    filter: saturate(1.1) brightness(1.03);
}

button:active,
input[type="submit"]:active,
.button:active {
    transform: translateY(0);
}

a {
    text-decoration: none;
    color: var(--hamisa-brand-primary);
    font-weight: 500;
}

@keyframes hamisa-card-enter {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 640px) {
    .main {
        padding-top: 1.1rem;
    }

    .form-floating-out {
        margin: 0.9rem 0;
    }
}