/* ==========================================================================
   HSN Brand Styles - Halliburton Supplier Network
    NOW CALLED HALLIBURTON SUPPLY CHAIN PORTAL (SCP
   Shared across SCP_SignIn.htm, SCP_SignUp.htm, and Razor views
   ========================================================================== */

:root {
    /* Primary Brand Colors */
    --hb-red: #CC0000;
    --hb-red-hover: #B30000;
    --hb-red-dark: #720F1A;

    /* Neutral Colors */
    --hb-black: #000000;
    --hb-dark: #43494E;
    --hb-dark-hover: #2A2F30;
    --hb-gray: #6D757A;
    --hb-light-gray: #A8AFB5;
    --hb-neutral-gray: #979FAD;
    --hb-bg-gray: #D4DADD;
    --hb-bg-light: #FFFFFF;
    --hb-white: #FFFFFF;

    /* Accent Colors */
    --hb-green: #119E49;
    --hb-yellow: #F7B500;

    /* Extended Secondary Palette (BrandStyleGuide.pdf) */
    --hb-gray-100: #ECEFF0;
    --hb-gray-200: #D4DADD;
    --hb-gray-300: #BEC4C9;
    --hb-gray-400: #A8AFB5;
    --hb-gray-500: #7F878D;
    --hb-gray-600: #6D757A;
    --hb-gray-700: #43494E;
    --hb-gray-800: #2A2F30;

    /* Typography */
    --hb-font-family: "Univers", Arial, Helvetica, sans-serif;
    --hb-line-height: 1.4;
}

/* Reset */
* {
    box-sizing: border-box;
}

body {
    font-family: var(--hb-font-family);
    font-size: 1rem;
    line-height: var(--hb-line-height);
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    padding: 0 0 72px 0;
    word-wrap: break-word;
    background-color: var(--hb-bg-light);
    color: var(--hb-dark);
}

/* ==========================================================================
   Header
   ========================================================================== */
.hal-header {
    background-color: var(--hb-red);
    width: 100%;
}

.hal-header-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    display: flex;
    align-items: center;
}

.hal-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.hal-logo img {
    width: 250px;
    max-width: 100%;
    height: auto;
    display: block;
}

.hal-logo:hover {
    text-decoration: none;
}


/* ==========================================================================
   Footer
   ========================================================================== */
.hal-footer {
    background-color: var(--hb-dark);
    color: var(--hb-white);
    padding: 15px 20px;
    text-align: center;
    margin-top: 0;
    border: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
}

.hal-footer a {
    color: var(--hb-white);
}

/* ==========================================================================
   Main Content
   ========================================================================== */
main, .main-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
}

/* ==========================================================================
   Typography
   ========================================================================== */
h1 {
    font-size: 1.75rem;
    color: var(--hb-dark);
    font-weight: 300;
    line-height: var(--hb-line-height);
    text-align: center;
    margin: 1rem 0 0.5rem;
}

h2 {
    font-size: 1.25rem;
    color: var(--hb-dark);
    font-weight: bold;
    line-height: var(--hb-line-height);
    margin: 1rem 0 0.5rem;
}

h3 {
    font-size: 1rem;
    color: var(--hb-dark);
    font-weight: bold;
    line-height: var(--hb-line-height);
    margin: 1rem 0 0.5rem;
}

h4 {
    font-size: 0.875rem;
    color: var(--hb-gray);
    font-weight: normal;
    font-style: italic;
    line-height: var(--hb-line-height);
    text-align: center;
    margin: 0.5rem 0;
}

p {
    margin: 0 0 0.5rem 0;
    line-height: var(--hb-line-height);
}

a {
    color: var(--hb-red);
    text-decoration: underline;
}

a:visited {
    color: var(--hb-red);
}

a:hover {
    color: var(--hb-red);
    text-decoration: none;
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn {
    padding: 10px 30px;
    font-size: 0.875rem;
    font-weight: bold;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: background-color 0.2s ease;
    display: inline-block;
    text-align: center;
    text-decoration: none;
}

.btn-primary {
    background-color: var(--hb-red);
    color: var(--hb-white);
}

.btn-primary:hover {
    background-color: var(--hb-red-hover);
}

.btn-secondary {
    background-color: var(--hb-bg-gray);
    color: var(--hb-black);
}

.btn-secondary:hover {
    background-color: var(--hb-neutral-gray);
    color: var(--hb-black);
}

.btn-cancel {
    background-color: var(--hb-bg-gray);
    color: var(--hb-black);
}

.btn-cancel:hover {
    background-color: var(--hb-neutral-gray);
    color: var(--hb-black);
}

.button-container {
    text-align: left;
    margin: 2rem 0;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.button-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.button-container form {
    display: inline-block;
    margin: 0;
}

.button-container .btn {
    margin: 0;
}

.forgot-password-link {
    margin-top: 0.55rem;
    font-size: 0.875rem;
    line-height: 1.2;
}

/* ==========================================================================
   Components
   ========================================================================== */
section {
    margin: 1rem 0;
}

.support-list {
    margin: 0.5rem 0 1rem;
    padding-left: 1.5rem;
}

.visible-line-space {
    height: 1rem;
}

.support-list li {
    margin-bottom: 0.35rem;
}

.notice-box {
    background-color: var(--hb-white);
    padding: 1rem;
    border-left: 4px solid var(--hb-red);
    border-radius: 4px;
    margin: 1rem 0;
}

.success-box {
    background-color: var(--hb-white);
    padding: 1rem;
    border-left: 5px solid var(--hb-green);
    border-radius: 4px;
    margin: 1rem 0;
}

.contact-box {
    background-color: var(--hb-white);
    padding: 1rem;
    border-left: 5px solid var(--hb-red);
    border-radius: 4px;
    margin: 1rem 0;
}

.contact-box strong {
    color: var(--hb-red);
}

.contact-box ul {
    margin: 0.5rem 0;
    padding-left: 1.5rem;
}

.contact-box li {
    margin-bottom: 0.375rem;
}

.notice-title {
    text-align: center;
    font-weight: bold;
    margin: 1.5rem 0 0.5rem;
    color: var(--hb-red);
}

.signup-legal-notice-spacer {
    height: 2.8rem;
}

.signup-legal-notice {
    border-left: 4px solid var(--hb-red);
    padding: 1.2rem 0 0 1rem;
    margin: 0 0 1rem 0;
}

.signup-legal-notice h2 {
    margin: 0 0 0.25rem 0;
    color: var(--hb-red);
    font-size: 1rem;
    font-weight: bold;
    text-transform: uppercase;
}

.signup-legal-notice h3 {
    margin: 0 0 1.15rem 0;
    color: var(--hb-dark);
    font-size: 0.9rem;
    font-weight: bold;
}

.signup-legal-notice p {
    margin: 0;
}

.signup-legal-notice-bottom-space {
    height: 1rem;
}

.success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4em;
    height: 1.4em;
    margin-right: 0.5rem;
    vertical-align: -0.15em;
}

.success-icon svg {
    width: 100%;
    height: 100%;
}

.success-icon path {
    fill: none;
    stroke: var(--hb-green);
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nowrap {
    white-space: nowrap;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 600px) {
    main, .main-content {
        padding: 1rem;
    }

    h1 { font-size: 1.5rem; }
    h2 { font-size: 1.125rem; }

    .button-container {
        flex-direction: column;
        align-items: flex-start;
    }

    .button-container .btn,
    .button-container button {
        display: block;
        width: auto;
        margin: 0.5rem 0;
    }

    .button-container form {
        display: block;
        margin: 0.5rem 0;
    }

    .hal-header-content {
        flex-direction: column;
        text-align: center;
    }
}
