/* Glintplus Website v0.8.13 — GGS Core service presentation skin.
 * Functional/security states remain owned by GGS Core. All visual adaptation is
 * scoped to service requests claimed by the Website presentation layer. */

.glintplus-service-main {
    min-height: 52vh;
    padding: clamp(2.6rem, 5vw, 4.5rem) 0 clamp(3.2rem, 6vw, 5.5rem);
    background:
        radial-gradient(circle at 88% 8%, rgba(202,44,146,.055), transparent 24%),
        linear-gradient(180deg, #fff 0%, #fcfafb 100%);
}

.glintplus-service-container {
    width: min(760px, calc(100% - 2rem));
}

.glintplus-service-frame {
    width: 100%;
}

.glintplus-service-body .ggs-account-form,
.glintplus-service-body .ggs-form-message {
    font-family: Lato, "Segoe UI", Arial, sans-serif;
}

.glintplus-service-frame .ggs-account-form {
    max-width: 600px;
    margin: 0 auto;
    padding: clamp(1.25rem, 3vw, 1.8rem);
    border: 1px solid var(--glintplus-border);
    border-radius: 16px;
    background: #fff;
    color: var(--glintplus-ink);
    box-shadow: 0 18px 48px rgba(33,19,29,.06);
}

.glintplus-service-frame .ggs-account-form__intro h2,
.glintplus-service-frame .ggs-verification-intro h2,
.glintplus-service-frame .ggs-account-section h3 {
    color: var(--glintplus-ink);
}

.glintplus-service-frame .ggs-account-form__intro p,
.glintplus-service-frame .ggs-verification-intro p,
.glintplus-service-frame .ggs-field-help,
.glintplus-service-frame .ggs-field-feedback,
.glintplus-service-frame .ggs-muted,
.glintplus-service-frame .ggs-powered-by {
    color: var(--glintplus-muted);
}

.glintplus-service-frame .ggs-field input,
.glintplus-service-frame .ggs-field select {
    min-height: 48px;
    border: 1px solid #cfc5cc;
    border-radius: 8px;
    color: var(--glintplus-ink);
    font: inherit;
}

.glintplus-service-frame .ggs-field input:focus,
.glintplus-service-frame .ggs-field select:focus,
.glintplus-service-frame .ggs-button:focus-visible,
.glintplus-service-frame a:focus-visible {
    outline: 3px solid rgba(24,19,26,.16);
    outline-offset: 3px;
}

.glintplus-service-frame .ggs-account-summary,
.glintplus-service-frame .ggs-account-status-card,
.glintplus-service-frame .ggs-account-reference {
    border-color: var(--glintplus-border);
    background: var(--glintplus-soft);
}

.glintplus-service-frame .ggs-account-section {
    border-top-color: var(--glintplus-border);
}

.glintplus-service-frame .ggs-button {
    border-radius: 8px;
    font-family: inherit;
    text-decoration: none;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease;
}

.glintplus-service-frame .ggs-button--primary {
    border-color: var(--glintplus-royal-fuchsia);
    background: var(--glintplus-royal-fuchsia);
    color: #fff;
}

.glintplus-service-frame .ggs-button--primary:hover,
.glintplus-service-frame .ggs-button--primary:focus-visible {
    border-color: var(--glintplus-royal-fuchsia-dark);
    background: var(--glintplus-royal-fuchsia-dark);
    color: #fff;
}

.glintplus-service-frame .ggs-button:not(.ggs-button--primary):not(.ggs-button--researchment):not(.ggs-button--danger) {
    border-color: var(--glintplus-border);
    background: #fff;
    color: var(--glintplus-ink);
}

.glintplus-service-frame .ggs-button:not(.ggs-button--primary):not(.ggs-button--researchment):not(.ggs-button--danger):hover,
.glintplus-service-frame .ggs-button:not(.ggs-button--primary):not(.ggs-button--researchment):not(.ggs-button--danger):focus-visible {
    border-color: var(--glintplus-royal-fuchsia);
    color: var(--glintplus-royal-fuchsia-dark);
}

.glintplus-service-frame a:not(.ggs-button) {
    color: var(--glintplus-royal-fuchsia-dark);
    text-underline-offset: 3px;
}

.glintplus-service-frame .ggs-form-message {
    border-radius: 8px;
    background: var(--glintplus-soft);
}

/* Researchment trust context retains its approved teal semantics. */
.glintplus-service-frame--researchment .ggs-button--researchment {
    border-color: #008080;
    background: #008080;
    color: #fff;
}
.glintplus-service-frame--researchment .ggs-button--researchment:hover,
.glintplus-service-frame--researchment .ggs-button--researchment:focus-visible {
    border-color: #006768;
    background: #006768;
    color: #fff;
}
.glintplus-service-frame--researchment .ggs-researchment-verified-panel {
    border-color: #cfe6e6;
    background: #f4fbfb;
}

/* Destructive action remains semantic danger, never brand fuchsia. */
.glintplus-service-frame .ggs-button--danger {
    border-color: #a61b1b;
    background: #a61b1b;
    color: #fff;
}
.glintplus-service-frame .ggs-button--danger:hover,
.glintplus-service-frame .ggs-button--danger:focus-visible {
    border-color: #7f1414;
    background: #7f1414;
    color: #fff;
}

/* GGS Core flash output is emitted at wp_footer(), outside the shell wrapper. */
body.glintplus-service-body .ggs-flash {
    font-family: Lato, "Segoe UI", Arial, sans-serif;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(33,19,29,.16);
}

@media (max-width: 680px) {
    .glintplus-service-main {
        padding: 1.5rem 0 3rem;
    }
    .glintplus-service-container {
        width: min(100% - 1rem, 760px);
    }
    .glintplus-service-frame .ggs-account-form {
        margin: 0;
        padding: 1rem;
        border-radius: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .glintplus-service-frame .ggs-button {
        transition: none;
    }
}


/* v0.8.14 — Sign In alignment follows the established Glintplus form pattern.
 * Authentication structure remains Core-owned; this is presentation only. */
.glintplus-service-frame [data-ggs-form="login"] > form > .ggs-button--primary {
    display: flex;
    width: max-content;
    margin-left: auto;
}

.glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__links,
.glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__switch {
    display: inline-flex;
    align-items: baseline;
    margin-top: 1rem;
    margin-bottom: 0;
}

.glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__links {
    float: left;
}

.glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__switch {
    float: right;
    text-align: right;
}

.glintplus-service-frame [data-ggs-form="login"] > form::after {
    content: "";
    display: table;
    clear: both;
}

@media (max-width: 680px) {
    .glintplus-service-frame [data-ggs-form="login"] > form > .ggs-button--primary {
        width: 100%;
        justify-content: center;
    }

    .glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__links,
    .glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__switch {
        font-size: .94rem;
    }
}


/* v0.8.15 — Core service action alignment refinement.
 * Functional copy and authentication behaviour remain GGS Core-owned. */
.glintplus-service-frame [data-ggs-form="login"] > form > .ggs-account-form__switch {
    gap: .28em;
}

.glintplus-service-frame [data-ggs-form="login"] > details form > .ggs-button {
    display: flex;
    width: max-content;
    margin-left: auto;
}

/* Sign Up now follows the same right-side primary-action convention used by
 * Glintplus Website forms and the accepted Sign In presentation. */
.glintplus-service-frame [data-ggs-form="register"] > form > .ggs-button--primary {
    display: flex;
    width: max-content;
    margin-left: auto;
}

.glintplus-service-frame [data-ggs-form="register"] > form > .ggs-account-form__switch {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: .28em;
    text-align: right;
}

@media (max-width: 680px) {
    .glintplus-service-frame [data-ggs-form="register"] > form > .ggs-button--primary {
        width: 100%;
        justify-content: center;
    }

    .glintplus-service-frame [data-ggs-form="login"] > details form > .ggs-button {
        margin-left: auto;
    }
}


/* v0.8.16 — consolidated GGS Core service-page presentation.
 * Website owns presentation only; GGS Core remains functional authority. */

/* One rhythm across all hosted account/security services. */
.glintplus-service-frame .ggs-account-form > .ggs-form-message {
    max-width: none;
    margin: 1rem 0;
}

.glintplus-service-frame .ggs-account-form__intro {
    margin-bottom: 1.2rem;
}

.glintplus-service-frame .ggs-account-form__intro h2 {
    margin-bottom: .42rem;
    font-size: clamp(1.45rem, 2.4vw, 1.68rem);
    line-height: 1.25;
}

.glintplus-service-frame .ggs-account-form__intro p {
    max-width: 58ch;
    margin-bottom: 0;
    line-height: 1.55;
}

.glintplus-service-frame .ggs-field {
    margin-bottom: 1.05rem;
}

.glintplus-service-frame .ggs-field label {
    margin-bottom: .42rem;
}

.glintplus-service-frame .ggs-field-help,
.glintplus-service-frame .ggs-field-feedback {
    line-height: 1.45;
}

.glintplus-service-frame .ggs-check {
    line-height: 1.45;
}

/* Account & Security is content-dense and receives the wider controlled card. */
.glintplus-service-site[data-glintplus-service="account"] .ggs-account-form {
    max-width: 680px;
}

.glintplus-service-site[data-glintplus-service="account"] .ggs-account-status-grid {
    gap: .9rem;
}

.glintplus-service-site[data-glintplus-service="account"] .ggs-account-status-card {
    min-height: 86px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.glintplus-service-site[data-glintplus-service="account"] .ggs-account-section {
    margin-top: 1.65rem;
    padding-top: 1.45rem;
}

.glintplus-service-site[data-glintplus-service="account"] .ggs-account-section h3 {
    margin-bottom: 1rem;
}

.glintplus-service-site[data-glintplus-service="account"] [data-ggs-form="account"] form > .ggs-button--primary,
.glintplus-service-site[data-glintplus-service="account"] [data-ggs-form="account-link"] form > .ggs-button--primary,
.glintplus-service-site[data-glintplus-service="account"] .ggs-account-section form > .ggs-button {
    display: flex;
    width: max-content;
    margin-left: auto;
}

.glintplus-service-site[data-glintplus-service="account"] [data-ggs-form="account"] > .ggs-account-form__links {
    text-align: right;
}

.glintplus-service-site[data-glintplus-service="account"] .ggs-account-reference {
    border-radius: 10px;
}

.glintplus-service-site[data-glintplus-service="account"] .ggs-account-reference summary,
.glintplus-service-site[data-glintplus-service="sign-in"] details.ggs-account-section summary {
    cursor: pointer;
    font-weight: 700;
}

/* Password flows use the same right-side primary action and a quiet return link. */
.glintplus-service-site[data-glintplus-service="forgot-password"] [data-ggs-form="forgot-password"] > form > .ggs-button--primary,
.glintplus-service-site[data-glintplus-service="reset-password"] [data-ggs-form="reset-password"] > form > .ggs-button--primary,
.glintplus-service-site[data-glintplus-service="change-password"] [data-ggs-form="change-password"] > form > .ggs-button--primary,
.glintplus-service-site[data-glintplus-service="sign-out"] [data-ggs-form="sign-out"] > form > .ggs-button--primary {
    display: flex;
    width: max-content;
    margin-left: auto;
}

.glintplus-service-site[data-glintplus-service="forgot-password"] .ggs-account-form__switch,
.glintplus-service-site[data-glintplus-service="change-password"] .ggs-account-form__switch {
    margin-top: 1rem;
}

/* Delete Account keeps semantic danger styling but follows the same action edge. */
.glintplus-service-site[data-glintplus-service="delete-account"] .ggs-danger-action {
    justify-content: flex-end;
}

.glintplus-service-site[data-glintplus-service="delete-account"] .ggs-account-form__links {
    margin-top: 1rem;
}

.glintplus-service-site[data-glintplus-service="delete-account"] .ggs-account-section--first {
    padding: 1rem;
    border: 1px solid #ead3d3;
    border-radius: 10px;
    background: #fffafa;
}

.glintplus-service-site[data-glintplus-service="delete-account"] .ggs-account-section--first p:first-child {
    margin-top: 0;
}

.glintplus-service-site[data-glintplus-service="delete-account"] .ggs-account-section--first p:last-child {
    margin-bottom: 0;
}

/* Institutional Verification intentionally preserves the earlier centred action
 * and Researchment trust colour rather than inheriting right-side Glintplus actions. */
.glintplus-service-site[data-glintplus-service="researchment-verification"] .ggs-account-form {
    max-width: 620px;
}

.glintplus-service-site[data-glintplus-service="researchment-verification"] .ggs-verification-action {
    justify-content: center;
}

.glintplus-service-site[data-glintplus-service="researchment-verification"] .ggs-powered-by {
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px;
}

/* Stable secondary/disclosure treatment across service pages. */
.glintplus-service-frame details.ggs-account-section,
.glintplus-service-frame details.ggs-account-reference {
    transition: border-color .14s ease, background-color .14s ease;
}

.glintplus-service-frame details.ggs-account-section[open],
.glintplus-service-frame details.ggs-account-reference[open] {
    border-color: #d8ccd4;
    background: #fdfbfd;
}

.glintplus-service-frame .ggs-danger-link {
    color: #a61b1b;
    font-weight: 700;
}

.glintplus-service-frame .ggs-danger-link:hover,
.glintplus-service-frame .ggs-danger-link:focus-visible {
    color: #7f1414;
}

/* Core flash notifications visually match the Website's established bottom-left toast. */
body.glintplus-service-body .ggs-flash {
    left: 24px;
    bottom: 24px;
    width: min(430px, calc(100vw - 32px));
    gap: 1rem;
    padding: 1rem 1rem 1rem 1.1rem;
    border-radius: 12px;
    background: #fff;
    color: var(--glintplus-ink);
    box-shadow: 0 18px 48px rgba(33,19,29,.16);
}

body.glintplus-service-body .ggs-flash__message {
    line-height: 1.45;
}

body.glintplus-service-body .ggs-flash__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: -.35rem -.35rem 0 0;
    border-radius: 999px;
}

body.glintplus-service-body .ggs-flash__close:hover,
body.glintplus-service-body .ggs-flash__close:focus-visible {
    background: #f7f2f5;
}

@media (max-width: 680px) {
    .glintplus-service-site[data-glintplus-service="account"] [data-ggs-form="account"] form > .ggs-button--primary,
    .glintplus-service-site[data-glintplus-service="account"] [data-ggs-form="account-link"] form > .ggs-button--primary,
    .glintplus-service-site[data-glintplus-service="account"] .ggs-account-section form > .ggs-button,
    .glintplus-service-site[data-glintplus-service="forgot-password"] [data-ggs-form="forgot-password"] > form > .ggs-button--primary,
    .glintplus-service-site[data-glintplus-service="reset-password"] [data-ggs-form="reset-password"] > form > .ggs-button--primary,
    .glintplus-service-site[data-glintplus-service="change-password"] [data-ggs-form="change-password"] > form > .ggs-button--primary,
    .glintplus-service-site[data-glintplus-service="sign-out"] [data-ggs-form="sign-out"] > form > .ggs-button--primary,
    .glintplus-service-site[data-glintplus-service="delete-account"] .ggs-danger-action .ggs-button {
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }

    .glintplus-service-site[data-glintplus-service="delete-account"] .ggs-danger-action {
        width: 100%;
    }

    body.glintplus-service-body .ggs-flash {
        left: 16px;
        right: 16px;
        bottom: 16px;
        width: auto;
    }
}
