/**
 * Focal Point CNC Solutions — Joomla 5.4 Template
 * user.css — Site-specific brand overrides
 *
 * This file mirrors the live user.css on focalpointcnc.com (Cassiopeia child).
 * It is loaded after template.css so overrides apply cleanly.
 * Add per-page customisations here rather than editing template.css.
 */

/* ==========================================================================
   CSS Variable Overrides (synced with live site)
   ========================================================================== */
:root {
    --cassiopeia-color-primary:  #164386;
    --cassiopeia-color-link:     #224faa;
    --link-color:                #224faa;
    --link-color-rgb:            34, 79, 170;
    --cassiopeia-color-hover:    #dca005;
    --off-white:                 #F8FAFC;
}

/* ==========================================================================
   Overlay / slide-over module (matches live .overlay-content)
   ========================================================================== */
.overlay-content {
    display: flex;
    z-index: 10;
    color: #ffffff;
    background-color: #164386;
}
.inner-overlay { margin-left: 10px; }

/* ==========================================================================
   Logo / brand typography classes (matches live site)
   ========================================================================== */
.tgln {
    font-family: courgette, cursive;
    font-weight: bold;
    font-style: italic;
    font-size: 2em;
    color: #164386;
    padding-top: 20px;
    margin-right: auto;
    text-align: center;
}
.logo {
    font-family: "Franklin Gothic", "ITC Franklin Gothic", Arial, sans-serif;
    font-style: normal;
    font-variant: normal;
    font-weight: 700;
}
.point  { font-style: italic; }
.cnc    { font-family: acumin-variable, sans-serif; font-style: normal; font-variant: normal; font-weight: 500; }

/* ==========================================================================
   Article row section classes (matching live site exactly)
   ========================================================================== */
.blue  { padding: 144px 84px; color: #ffffff; background-color: #164386; }
.yellow { padding: 144px 84px; background-color: #dca005; }
.white  { padding: 144px 84px; color: #164386; background-color: #ffffff; }
.whtbck { padding: 144px 84px; color: #164386; background-color: #ffffff; }

/* ==========================================================================
   Form fields inside Joomla articles (.controls)
   ========================================================================== */
div.controls > input.form-control,
textarea.form-control {
    border: 2px solid #E2E8F0;
    border-radius: 4px;
    padding: 12px 16px;
    font-family: 'Barlow', sans-serif;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
div.controls > input.form-control:focus,
textarea.form-control:focus {
    border-color: #dca005;
    box-shadow: 0 0 0 3px rgba(220,160,5,0.15);
    outline: none;
}

/* ==========================================================================
   Joomla contact / com_contact overrides
   ========================================================================== */
#contact-form .control-label { font-weight: 600; color: #164386; }
#contact-form .required { color: #dca005; }

/* ==========================================================================
   Full-width landing page helpers (matches live site article CSS)
   ========================================================================== */
body.landing-page-fullwidth .item-page {
    padding: 0 !important;
    margin: 0 !important;
}

.landing-override {
    margin-left:  calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    max-width: 100vw;
    width: 100vw;
}

/* ==========================================================================
   Form success state (used by landing page contact form)
   ========================================================================== */
.form-success {
    text-align: center;
    padding: 60px 20px;
    background: #f0f9ff;
    border-radius: 8px;
}
.form-success h3 { color: #0369a1; margin-bottom: 10px; }
.form-success p  { color: #475569; }

/* ==========================================================================
   Module title style
   ========================================================================== */
.fpsite-component .moduletable h3,
.fpsite-component .moduletable .module-title {
    font-family: 'DM Serif Display', Georgia, serif;
    color: #164386;
    border-bottom: 3px solid #dca005;
    padding-bottom: 10px;
    margin-bottom: 20px;
    font-weight: 400;
}

/* ==========================================================================
   Blog / article list overrides
   ========================================================================== */
.fpsite-component .blog-featured h2.page-header,
.fpsite-component .items-leading h2 a,
.fpsite-component .items-row h2 a,
.fpsite-component .items-more h3 a {
    font-family: 'DM Serif Display', Georgia, serif;
    font-weight: 400;
    color: #164386;
    text-decoration: none;
}
.fpsite-component .items-leading h2 a:hover,
.fpsite-component .items-row h2 a:hover,
.fpsite-component .items-more h3 a:hover {
    color: #dca005;
}
.fpsite-component .article-info {
    font-size: 13px;
    color: #64748B;
    margin-bottom: 12px;
}
.fpsite-component .readmore a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 22px;
    background: #164386;
    color: #ffffff !important;
    border-radius: 4px;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none !important;
    transition: background 0.3s ease, transform 0.3s ease;
}
.fpsite-component .readmore a:hover {
    background: #dca005;
    transform: translateY(-1px);
}

/* ==========================================================================
   Alert / message overrides
   ========================================================================== */
.fpsite-component .alert-success {
    background: #f0fdf4;
    border-left: 4px solid #10B981;
    color: #164386;
    border-radius: 4px;
}
.fpsite-component .alert-danger,
.fpsite-component .alert-error {
    background: #fef2f2;
    border-left: 4px solid #a51f18;
    color: #a51f18;
    border-radius: 4px;
}

/* ==========================================================================
   Print styles
   ========================================================================== */
@media print {
    .fpsite-header,
    .fpsite-footer,
    .fpsite-topbar,
    .fpsite-banner,
    .fpsite-top-strip,
    .fpsite-bottom-strip,
    .fpsite-menu-toggle,
    .fpsite-mobile-nav,
    .fpsite-nav-overlay { display: none !important; }

    body.fpsite { background: white; color: black; font-size: 12pt; }
    .fpsite-component { width: 100%; max-width: 100%; padding: 0; }
    .blue, .yellow { background: white !important; color: black !important; padding: 20px 0; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 10pt; }
}
