/*
Theme Name: Escorts Realm Legal Pages
Theme URI: https://escortsrealm.com
Author: Escorts Realm Technologies Pty Ltd
Author URI: https://escortsrealm.com
Description: Professional corporate/legal pages theme with comprehensive customizer settings for header, footer, and content sections.
Version: 3.0.0
License: Proprietary
Text Domain: escorts-realm
Tags: corporate, legal, multi-region, customizable

Escorts Realm Legal Pages Theme v3.0
Copyright 2025 Escorts Realm Technologies Pty Ltd
ABN: 47690265868
*/

/* ============================================
   CSS VARIABLES
   ============================================ */
:root {
    --er-red: #E21C21;
    --er-red-hover: #C91A1F;
    --er-blue: #003B95;
    --er-dark: #1A1A1A;
    --er-gray-dark: #333333;
    --er-gray-medium: #6B6B6B;
    --er-gray-light: #F5F5F5;
    --er-gray-border: #E0E0E0;
    --er-link: #006CE4;
    --er-link-hover: #0057B8;
    --er-white: #FFFFFF;
    --er-black: #000000;
    --er-font: BlinkMacSystemFont, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --er-sidebar-width: 260px;
    --er-content-max: 760px;
}

/* ============================================
   RESET & BASE
   ============================================ */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-behavior: smooth; }
body { margin: 0; padding: 0; font-family: var(--er-font); font-size: 14px; line-height: 1.5; color: var(--er-gray-dark); background: var(--er-white); }

a { color: var(--er-link); text-decoration: none; transition: color 0.15s ease; }
a:hover { color: var(--er-link-hover); text-decoration: underline; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 16px; font-weight: 700; line-height: 1.25; color: var(--er-dark); }
h1 { font-size: 24px; }
h2 { font-size: 20px; font-weight: 700; }
h3 { font-size: 16px; font-weight: 700; }
p { margin: 0 0 16px; }
ul, ol { margin: 0 0 16px; padding-left: 24px; }
li { margin-bottom: 8px; }
strong { font-weight: 700; }

/* ============================================
   HEADER
   ============================================ */
.er-header {
    background: var(--er-red);
    position: relative;
}

.er-header__inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 24px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
}

.er-header__logo a {
    display: flex;
    align-items: center;
}

.er-header__logo img {
    height: 64px;
    width: auto;
    display: block;
}

.er-header__right {
    display: flex;
    align-items: center;
    gap: 16px;
}

.er-header__cta {
    color: var(--er-white);
    font-size: 14px;
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 6px;
}

.er-header__cta:hover {
    color: var(--er-white);
    text-decoration: none;
    opacity: 0.9;
}

.er-header__item {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--er-white);
    font-size: 14px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 4px;
    transition: background 0.15s;
}

.er-header__item:hover {
    background: rgba(0,0,0,0.1);
}

.er-header__item svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

.er-header__btn {
    padding: 8px 16px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
    transition: all 0.15s;
    border: 1px solid var(--er-white);
}

.er-header__btn--outline {
    background: transparent;
    color: var(--er-white);
}

.er-header__btn--outline:hover {
    background: rgba(255,255,255,0.1);
    color: var(--er-white);
}

.er-header__btn--solid {
    background: var(--er-white);
    color: var(--er-gray-dark);
    border-color: var(--er-white);
}

.er-header__btn--solid:hover {
    background: #f0f0f0;
    color: var(--er-gray-dark);
}

/* ============================================
   MAIN LAYOUT
   ============================================ */
.er-layout {
    display: flex;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 24px;
}

.er-sidebar {
    width: var(--er-sidebar-width);
    flex-shrink: 0;
    padding: 32px 32px 32px 0;
}

.er-main {
    flex: 1;
    min-width: 0;
    padding: 32px 0 32px 48px;
    border-left: 1px solid var(--er-gray-border);
}

/* ============================================
   JURISDICTION SELECTOR
   ============================================ */
.er-jurisdiction {
    margin-bottom: 32px;
}

.er-jurisdiction__label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--er-dark);
    margin-bottom: 8px;
}

.er-jurisdiction__select {
    width: 100%;
    padding: 10px 36px 10px 12px;
    font-size: 14px;
    font-family: var(--er-font);
    color: var(--er-gray-dark);
    border: 1px solid var(--er-gray-border);
    border-radius: 4px;
    background: var(--er-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%23333' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") no-repeat right 12px center;
    appearance: none;
    cursor: pointer;
    transition: border-color 0.15s;
}

.er-jurisdiction__select:hover,
.er-jurisdiction__select:focus {
    border-color: var(--er-link);
    outline: none;
}

/* ============================================
   SIDEBAR NAVIGATION
   ============================================ */
.er-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.er-nav__item {
    margin: 0;
}

.er-nav__link {
    display: block;
    padding: 10px 12px;
    font-size: 14px;
    color: var(--er-link);
    border-radius: 4px;
    transition: all 0.15s;
    text-decoration: none;
}

.er-nav__link:hover {
    background: var(--er-gray-light);
    text-decoration: none;
}

.er-nav__link--active {
    background: var(--er-gray-light);
    color: var(--er-dark);
    font-weight: 400;
}

/* ============================================
   CONTENT AREA
   ============================================ */
.er-content__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--er-dark);
    margin: 0 0 24px;
    line-height: 1.25;
}

.er-content__body {
    font-size: 14px;
    line-height: 1.71;
    color: var(--er-gray-dark);
}

.er-content__body h2 {
    font-size: 20px;
    font-weight: 700;
    margin: 32px 0 16px;
    color: var(--er-dark);
}

.er-content__body h3 {
    font-size: 16px;
    font-weight: 700;
    margin: 24px 0 12px;
    color: var(--er-dark);
}

.er-content__body p {
    margin: 0 0 16px;
}

.er-content__body ul,
.er-content__body ol {
    margin: 0 0 16px;
    padding-left: 24px;
}

.er-content__body li {
    margin-bottom: 8px;
}

.er-content__body a {
    color: var(--er-link);
}

.er-content__body a:hover {
    color: var(--er-link-hover);
}

/* ============================================
   COMPANY INFO CARDS (Gray Section)
   ============================================ */
.er-info-section {
    background: var(--er-gray-light);
    padding: 48px 0;
}

.er-info-section__inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 24px;
}

.er-info-card {
    display: flex;
    gap: 48px;
    padding: 32px 0;
    border-bottom: 1px solid var(--er-gray-border);
}

.er-info-card:first-child {
    padding-top: 0;
}

.er-info-card:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.er-info-card__label {
    width: 200px;
    flex-shrink: 0;
    font-size: 24px;
    font-weight: 400;
    color: var(--er-dark);
    line-height: 1.25;
}

.er-info-card__content {
    flex: 1;
    font-size: 14px;
    line-height: 1.71;
    color: var(--er-gray-dark);
}

.er-info-card__content p {
    margin: 0 0 8px;
}

.er-info-card__content p:last-child {
    margin-bottom: 0;
}

.er-info-card__content strong {
    font-weight: 700;
}

/* ============================================
   LOCATIONS SECTION (Blue)
   ============================================ */
.er-locations {
    background: var(--er-blue);
    color: var(--er-white);
    padding: 48px 24px;
    text-align: center;
}

.er-locations__inner {
    max-width: 900px;
    margin: 0 auto;
}

.er-locations__cities {
    font-size: 12px;
    line-height: 2;
    opacity: 0.9;
    margin-bottom: 24px;
}

.er-locations__cities span {
    margin: 0 2px;
}

.er-locations__legal {
    font-size: 12px;
    opacity: 0.7;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.2);
}

/* ============================================
   WHAT WE OFFER SECTION
   ============================================ */
.er-offers {
    background: var(--er-white);
    padding: 64px 24px;
}

.er-offers__inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    gap: 64px;
}

.er-offers__heading {
    width: 200px;
    flex-shrink: 0;
}

.er-offers__title {
    font-size: 24px;
    font-weight: 400;
    color: var(--er-dark);
    line-height: 1.33;
    margin: 0;
}

.er-offers__list {
    flex: 1;
}

.er-offers__item {
    margin-bottom: 32px;
}

.er-offers__item:last-child {
    margin-bottom: 0;
}

.er-offers__item h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--er-dark);
    margin: 0 0 8px;
}

.er-offers__item p {
    font-size: 14px;
    line-height: 1.71;
    color: var(--er-gray-dark);
    margin: 0;
}

.er-offers__item a {
    color: var(--er-link);
}

/* ============================================
   PARTNERS SECTION
   ============================================ */
.er-partners {
    background: var(--er-gray-light);
    padding: 64px 24px;
}

.er-partners__inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    gap: 64px;
}

.er-partners__heading {
    width: 200px;
    flex-shrink: 0;
}

.er-partners__title {
    font-size: 24px;
    font-weight: 400;
    color: var(--er-dark);
    line-height: 1.33;
    margin: 0;
}

.er-partners__content {
    flex: 1;
}

.er-partners__content p {
    font-size: 14px;
    line-height: 1.71;
    color: var(--er-gray-dark);
    margin: 0 0 16px;
}

.er-partners__content p:last-child {
    margin-bottom: 0;
}

.er-partners__content a {
    color: var(--er-link);
}

/* ============================================
   FOOTER
   ============================================ */
.er-footer {
    background: var(--er-white);
    border-top: 1px solid var(--er-gray-border);
    padding: 48px 0 32px;
}

.er-footer__inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 24px;
}

.er-footer__columns {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 32px;
    margin-bottom: 48px;
}

.er-footer__col h4 {
    font-size: 14px;
    font-weight: 700;
    color: var(--er-dark);
    margin: 0 0 16px;
}

.er-footer__col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.er-footer__col li {
    margin: 0 0 10px;
}

.er-footer__col a {
    font-size: 14px;
    color: var(--er-gray-dark);
    text-decoration: none;
}

.er-footer__col a:hover {
    color: var(--er-dark);
    text-decoration: underline;
}

/* Footer Flags */
.er-footer__flags {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.er-footer__flag {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
}

.er-footer__flag--aboriginal { background: linear-gradient(180deg, #000 50%, #C00 50%); position: relative; }
.er-footer__flag--aboriginal::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 16px; height: 16px; background: #FC0; border-radius: 50%; }
.er-footer__flag--torres { background: linear-gradient(180deg, #009933 33%, #000 33%, #000 67%, #0066CC 67%); }
.er-footer__flag--progress { background: linear-gradient(180deg, #E40303 16.6%, #FF8C00 16.6%, #FF8C00 33.2%, #FFED00 33.2%, #FFED00 49.8%, #008026 49.8%, #008026 66.4%, #004DFF 66.4%, #004DFF 83%, #750787 83%); }
.er-footer__flag--trans { background: linear-gradient(180deg, #5BCEFA 20%, #F5A9B8 20%, #F5A9B8 40%, #FFF 40%, #FFF 60%, #F5A9B8 60%, #F5A9B8 80%, #5BCEFA 80%); }
.er-footer__flag--intersex { background: #FFD800; position: relative; }
.er-footer__flag--intersex::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 16px; height: 16px; border: 2px solid #7902AA; border-radius: 50%; }

/* Footer Acknowledgement */
.er-footer__ack {
    font-size: 13px;
    line-height: 1.6;
    color: var(--er-gray-medium);
    margin-bottom: 32px;
    max-width: 900px;
}

/* Footer Bottom */
.er-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 24px;
    border-top: 1px solid var(--er-gray-border);
    flex-wrap: wrap;
    gap: 16px;
}

.er-footer__region {
    display: flex;
    align-items: center;
    gap: 12px;
}

.er-footer__region-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    font-size: 14px;
    color: var(--er-gray-dark);
    cursor: pointer;
    padding: 0;
}

.er-footer__region-btn svg {
    width: 18px;
    height: 18px;
}

.er-footer__country {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--er-gray-dark);
}

.er-footer__social {
    display: flex;
    gap: 12px;
}

.er-footer__social a {
    color: var(--er-gray-dark);
    transition: color 0.15s;
}

.er-footer__social a:hover {
    color: var(--er-dark);
}

.er-footer__social svg {
    width: 20px;
    height: 20px;
}

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

.er-footer__location-change {
    font-size: 13px;
    color: var(--er-link);
    display: block;
    margin-bottom: 4px;
}

.er-footer__location-city {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    font-size: 14px;
    color: var(--er-gray-dark);
}

.er-footer__location-city svg {
    width: 14px;
    height: 14px;
}

/* Footer Copyright */
.er-footer__copyright {
    text-align: center;
    padding-top: 32px;
    font-size: 13px;
    color: var(--er-gray-medium);
}

.er-footer__copyright a {
    color: var(--er-gray-dark);
    font-weight: 500;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
    .er-footer__columns {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .er-info-card,
    .er-offers__inner,
    .er-partners__inner {
        flex-direction: column;
        gap: 16px;
    }
    
    .er-info-card__label,
    .er-offers__heading,
    .er-partners__heading {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .er-header__inner {
        padding: 16px;
    }
    
    .er-header__logo img {
        height: 48px;
    }
    
    .er-header__cta,
    .er-header__item:not(:last-of-type) {
        display: none;
    }
    
    .er-layout {
        flex-direction: column;
        padding: 0 16px;
    }
    
    .er-sidebar {
        width: 100%;
        padding: 24px 0;
        border-bottom: 1px solid var(--er-gray-border);
    }
    
    .er-main {
        padding: 24px 0;
        border-left: none;
    }
    
    .er-footer__columns {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }
    
    .er-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .er-footer__location {
        text-align: left;
    }
    
    .er-footer__location-city {
        justify-content: flex-start;
    }
}

@media (max-width: 480px) {
    .er-footer__columns {
        grid-template-columns: 1fr;
    }
    
    .er-header__right {
        gap: 8px;
    }
    
    .er-header__btn {
        padding: 6px 12px;
        font-size: 13px;
    }
}

/* ============================================
   ADMIN BAR FIX
   ============================================ */
.admin-bar .er-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .er-header {
        top: 46px;
    }
}

/* ============================================
   UTILITIES
   ============================================ */
.er-hidden { display: none !important; }
.er-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
