﻿/* =====================================================
BASE / RESET
===================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}
html {
    font-size: 16px; /* desktop baseline */
}
html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
    background: #000;
}



/* =====================================================
BODY / GLOBAL TEXT
===================================================== */

body {
    background: #fff;
    color: #000;
    font-family: 'Inter', sans-serif;
    font-size: .95em;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* form + inputs inherit cleanly */

body,
input,
button,
select,
textarea {
    font-family: 'Inter', sans-serif;
}

/* =====================================================
LAYOUT WRAPPERS
===================================================== */

#body {
    width: 100%;
    background: #fff;
}

.wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding-bottom: 30px;
    color: #000;
}

/* =====================================================
TYPOGRAPHY
===================================================== */

p {
    margin: 0 0 1em;
    font-weight: 400;
    line-height: 1.6;
    text-align: left;
}

    p.center {
        text-align: center;
    }

    p.left {
        text-align: left;
    }

    p.nospace {
        margin: 0;
    }

    p.text-block {
        max-width: 900px;
        margin: 0 auto;
        font-size: .95em;
        line-height: 1.65;
    }

/* HEADINGS (brand font) */

h1, h2, h3 {
    font-family: 'Oswald', sans-serif;
    color: #111;
    margin: 0 0 16px;
    line-height: 1.2;
}

h1 {
    font-size: 2em;
    font-weight: 600;
}

h2 {
    font-size: 1.7em;
    font-weight: 500;
}

h3 {
    font-size: 1.4em;
    font-weight: 600;
}

/* =====================================================
LINKS
===================================================== */

a {
    color: inherit;
    text-decoration: none;
}

    a:hover {
        color: red;
        transition: color .1s ease-in;
    }

/* =====================================================
IMAGES
===================================================== */

img {
    max-width: 100%;
    height: auto;
    border: none;
    display: block;
}

/* =====================================================
LISTS
===================================================== */

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* =====================================================
GLOBAL FORM SYSTEM
===================================================== */

.form-label {
    display: block;
    margin: 0 0 6px 0;
    color: #222;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
}

.form-input,
.form-select,
.form-textarea {
    width: 100%;
    border: 1px solid #dcdcdc;
    background: #fff;
    color: #111;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    box-sizing: border-box;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.form-input,
.form-select {
    height: 42px;
    padding: 0 12px;
    border-radius: 6px;
}

.form-textarea {
    min-height: 110px;
    padding: 10px 12px;
    border-radius: 6px;
    resize: vertical;
    line-height: 1.5;
}

    .form-input:focus,
    .form-select:focus,
    .form-textarea:focus {
        border-color: #0070ba;
        box-shadow: 0 0 0 2px rgba(0,112,186,.15);
    }

/* select */
.form-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 38px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20'><path fill='%23666' d='M5.5 7.5l4.5 5 4.5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 14px;
}

/* =====================================================
UTILITY
===================================================== */

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

/* =====================================================
BACK TO TOP
===================================================== */

/* to the top*/

.icon {
    display: block;
    font-weight: 400; /*transform: rotate(-180deg)*/
    -webkit-transform: scale(1.8, 1);
    -moz-transform: scale(1.8, 1);
    -o-transform: scale(1.8, 1);
    transform: scale(1.8, 1);
    color: #999999;
    margin-top: 2px;
}

.backToTop {
    position: fixed;
    bottom: 5%;
    right: 1.5%;
    z-index: 5; /*background: #333;*/
    display: block;
    border-radius: 50%;
    border: 3px #999999 solid;
    padding: .25em .4em .6em .4em;
    text-align: center; /*vertical-align: middle;color: #999999;font-weight: 100;background-color: rgba(84, 84, 84, 0.0);*/
    vertical-align: text-top;
    width: 40px;
    height: 40px;
    color: #999999;
    font-size: 1.8em;
    font-weight: 100;
    background-color: rgba(84, 84, 84, 0.0);
    padding: 0;
}

    .backToTop:hover {
        border: 3px red solid;
        color: #666666;
        background-color: rgba(84, 84, 84, 0);
        transition: all ease-in .1s;
        -webkit-transition: all ease-in .1s;
        -moz-transition: all ease-in .1s;
        -ms-transition: all ease-in .1s;
        -o-transition: all ease-in .1s;
    }


/* =====================================================
RESPONSIVE BASE
===================================================== */
@media (max-width:700px) {
    html {
        font-size: 17px;
    }
}

@media (max-width:480px) {
    html {
        font-size: 18px;
    }
}
@media (max-width:901px) {
    body {
        min-width: 320px;
    }
}

.service-actions .service-btn,
.service-form-actions .service-btn,
.account-actions .account-btn,
.error-actions .error-btn {
    min-width: 240px;
    max-width: 320px;
    flex: 0 1 240px;
}
@media (max-width: 700px) {
    .service-actions .service-btn,
    .service-form-actions .service-btn,
    .account-actions .account-btn,
    .error-actions .error-btn {
        min-width: 0;
        max-width: 100%;
        flex: 1 1 100%;
    }
}
.error-search-box .error-btn {
    min-width: auto;
    max-width: none;
    flex: 0 0 auto;
}


/* =====================================================
GLOBAL BUTTON SYSTEM
No jump hover + accessibility focus + active state
===================================================== */

.account-btn,
.service-btn,
.checkout-btn,
.login-btn,
.error-btn,
.btn-secondary,
.btn-estimate,
.claim-upload-btn,
.claim-remove-btn,
.paypal-complete-btn,
.submit,
.submit-coupon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    text-decoration: none;
    box-sizing: border-box;
    transform: none !important;
    transition: background-color .16s ease, background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, filter .16s ease;
}

    /* Remove old jump movement */
    .account-btn:hover,
    .service-btn:hover,
    .checkout-btn:hover,
    .login-btn:hover,
    .error-btn:hover,
    .btn-secondary:hover,
    .btn-estimate:hover,
    .claim-upload-btn:hover,
    .claim-remove-btn:hover,
    .paypal-complete-btn:hover,
    .submit:hover,
    .submit-coupon:hover {
        transform: none !important;
    }

    /* Default hover - subtle, professional */
    .account-btn:hover,
    .service-btn:hover,
    .checkout-btn:hover,
    .login-btn:hover,
    .error-btn:hover,
    .btn-secondary:hover,
    .btn-estimate:hover,
    .claim-upload-btn:hover,
    .claim-remove-btn:hover,
    .submit:hover,
    .submit-coupon:hover {
        box-shadow: 0 0 0 2px rgba(0,0,0,.05), 0 3px 8px rgba(0,0,0,.10);
        filter: brightness(1.03);
    }

    /* Red / primary buttons */
    .account-btn-primary:hover,
    .service-btn-danger:hover,
    .login-btn-primary:hover,
    .error-btn-primary:hover,
    .submit:hover,
    .submit-coupon:hover {
        box-shadow: 0 0 0 2px rgba(196,0,0,.14), 0 3px 8px rgba(0,0,0,.11);
        filter: brightness(1.03);
    }

/* Dark buttons */
.account-btn-dark:hover,
.service-btn-primary:hover,
.login-btn-dark:hover {
    box-shadow: 0 0 0 2px rgba(0,0,0,.12), 0 3px 8px rgba(0,0,0,.12);
    filter: brightness(1.08);
}

/* PayPal / yellow checkout buttons */
.checkout-btn:hover,
.paypal-complete-btn:hover {
    box-shadow: 0 0 0 2px rgba(224,174,40,.18), 0 3px 8px rgba(0,0,0,.10);
    filter: brightness(1.03);
}

/* Keyboard accessibility focus */
.account-btn:focus-visible,
.service-btn:focus-visible,
.checkout-btn:focus-visible,
.login-btn:focus-visible,
.error-btn:focus-visible,
.btn-secondary:focus-visible,
.btn-estimate:focus-visible,
.claim-upload-btn:focus-visible,
.claim-remove-btn:focus-visible,
.paypal-complete-btn:focus-visible,
.submit:focus-visible,
.submit-coupon:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0,112,186,.32), 0 0 0 6px rgba(0,112,186,.12);
}

/* Pressed / active state */
.account-btn:active,
.service-btn:active,
.checkout-btn:active,
.login-btn:active,
.error-btn:active,
.btn-secondary:active,
.btn-estimate:active,
.claim-upload-btn:active,
.claim-remove-btn:active,
.paypal-complete-btn:active,
.submit:active,
.submit-coupon:active {
    transform: none !important;
    filter: brightness(.97);
    box-shadow: 0 0 0 2px rgba(0,0,0,.08), 0 2px 5px rgba(0,0,0,.08);
}

/* Disabled state */
.account-btn:disabled,
.service-btn:disabled,
.checkout-btn:disabled,
.login-btn:disabled,
.error-btn:disabled,
.btn-secondary:disabled,
.btn-estimate:disabled,
.claim-upload-btn:disabled,
.claim-remove-btn:disabled,
.paypal-complete-btn:disabled,
.submit:disabled,
.submit-coupon:disabled,
.account-btn.is-disabled,
.service-btn.is-disabled {
    opacity: .55;
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none;
    filter: none;
}

/* Grey / secondary buttons - calmer */
.account-btn-secondary:hover,
.service-btn-secondary:hover,
.btn-secondary:hover,
.btn-estimate:hover,
.claim-upload-btn:hover,
.claim-remove-btn:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,.08); /* smaller shadow */
    filter: none; /* remove brightness shift */
    border-color: #cfcfcf; /* subtle definition instead */
}
/* =====================================================
SECONDARY BUTTON FIX (no jump, clean feel)
===================================================== */

.account-btn-secondary:hover{
    box-shadow: 0 2px 3px rgba(0,0,0,.01); /* much tighter */
    filter: none; /* remove brightness flash */
    border-color: #c9c9c9; /* stronger edge instead */
    background: #f0f0f0; /* very slight darken */
}