/* ==========================================================================
   LLOYD'S REGISTER TYPE APPROVAL — homepage section + hero badge
   Markup: index.php (#lr-approval, .lr-hero-badge) · JS: js/lr-approval.js
   ========================================================================== */

/* ---------- Hero badge (sits above the RACLAN wordmark) ---------- */
.hero-text-wrapper .lr-hero-badge {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 8px 16px 8px 12px;
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
    background: rgba(10, 12, 16, 0.7);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 40px;
    pointer-events: auto;
    -webkit-transition: border-color 0.3s ease, background 0.3s ease;
    transition: border-color 0.3s ease, background 0.3s ease;
}
.hero-text-wrapper .lr-hero-badge:hover {
    border-color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.08);
}
.hero-text-wrapper .lr-hero-badge i { font-size: 0.65rem; opacity: 0.7; }

/* Small "live" dot, shared by badge + eyebrow */
.lr-pulse {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #7fd6a4;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.lr-pulse::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid #7fd6a4;
    opacity: 0;
    -webkit-animation: lrPulse 2.4s ease-out infinite;
            animation: lrPulse 2.4s ease-out infinite;
}
@-webkit-keyframes lrPulse { 0% { -webkit-transform: scale(0.5); transform: scale(0.5); opacity: 0.8; } 100% { -webkit-transform: scale(1.8); transform: scale(1.8); opacity: 0; } }
@keyframes lrPulse { 0% { -webkit-transform: scale(0.5); transform: scale(0.5); opacity: 0.8; } 100% { -webkit-transform: scale(1.8); transform: scale(1.8); opacity: 0; } }

/* ---------- Section shell ---------- */
.lr-approval {
    position: relative;
    z-index: 15; /* above fixed 3D canvas (z 0/1) and narrative layer (10), below gate (20) */
    padding: clamp(90px, 14vh, 160px) 5vw;
    background:
        radial-gradient(ellipse 60% 70% at 78% 50%, rgba(255, 255, 255, 0.06) 0%, transparent 70%),
        #0a0c10;
    border-top: 1px solid var(--border);
    overflow: hidden;
}
/* faint blueprint grid, fading out to the left */
.lr-approval::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
    background-size: 40px 40px;
    -webkit-mask-image: linear-gradient(to left, #000 20%, transparent 80%);
            mask-image: linear-gradient(to left, #000 20%, transparent 80%);
    pointer-events: none;
}

.lr-inner {
    position: relative;
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(40px, 6vw, 100px);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* ---------- Copy ---------- */
.lr-eyebrow {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 12px;
    font-family: 'Orbitron', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--accent-tech);
    margin-bottom: 28px;
}

.lr-title {
    font-family: 'UniSans', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    font-size: clamp(2.2rem, 4.4vw, 4rem);
    line-height: 1;
    letter-spacing: 1px;
    color: var(--text-grey);
    margin: 0 0 32px;
}
.lr-title span {
    display: block;
    color: #fff;
}

.lr-lead {
    font-size: clamp(1.1rem, 1.4vw, 1.3rem);
    line-height: 1.55;
    color: #fff;
    max-width: 560px;
    margin: 0 0 16px;
}
.lr-context {
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--text-grey);
    max-width: 560px;
    margin: 0 0 40px;
}

/* Spec sheet */
.lr-specs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin: 0 0 44px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    max-width: 600px;
}
.lr-spec {
    padding: 16px 16px 16px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.lr-spec:nth-child(odd):not(.lr-spec-wide) {
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}
.lr-spec:nth-child(even) { padding-left: 20px; }
.lr-spec-wide { grid-column: 1 / -1; padding-left: 0 !important; }
.lr-spec dt {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-grey);
    margin-bottom: 6px;
}
.lr-spec dd {
    font-family: 'UniSans', sans-serif;
    font-weight: 800;
    font-size: 0.95rem;
    letter-spacing: 0.5px;
    color: #fff;
    margin: 0;
}

.lr-actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 28px;
}
.lr-actions .cta-tactical { text-decoration: none; display: inline-block; }
.lr-textlink {
    background: none;
    border: 0;
    padding: 6px 0;
    font-family: 'UniSans', sans-serif;
    font-weight: 800;
    font-size: 0.8rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    cursor: pointer;
    -webkit-transition: color 0.3s ease, border-color 0.3s ease;
    transition: color 0.3s ease, border-color 0.3s ease;
}
.lr-textlink i { margin-left: 8px; font-size: 0.7rem; -webkit-transition: -webkit-transform 0.3s ease; transition: transform 0.3s ease; }
.lr-textlink:hover { color: #fff; border-color: #fff; }
.lr-textlink:hover i { -webkit-transform: translateX(4px); transform: translateX(4px); }

/* ---------- The document ---------- */
.lr-doc {
    margin: 0;
    -webkit-perspective: 1600px;
            perspective: 1600px;
    justify-self: center;
    width: 100%;
    max-width: 460px;
}
.lr-doc-frame {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: #fff;
    cursor: -webkit-zoom-in;
    cursor: zoom-in;
    -webkit-transform: rotateY(-9deg) rotateX(4deg) rotateZ(1deg);
            transform: rotateY(-9deg) rotateX(4deg) rotateZ(1deg);
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
    -webkit-box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.4) inset,
        30px 50px 80px rgba(0, 0, 0, 0.7),
        0 0 120px rgba(255, 255, 255, 0.05);
            box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.4) inset,
        30px 50px 80px rgba(0, 0, 0, 0.7),
        0 0 120px rgba(255, 255, 255, 0.05);
    -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), -webkit-box-shadow 0.8s ease;
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.8s ease;
}
/* pages 2–4 peeking out behind page 1 */
.lr-doc-frame::before,
.lr-doc-frame::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #e9e9e6;
    z-index: -1;
    -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
.lr-doc-frame::before { -webkit-transform: translate(10px, 10px) translateZ(-1px); transform: translate(10px, 10px) translateZ(-1px); background: #d9d9d5; }
.lr-doc-frame::after  { -webkit-transform: translate(20px, 20px) translateZ(-2px); transform: translate(20px, 20px) translateZ(-2px); background: #bdbdb8; }

.lr-doc-frame:hover,
.lr-doc-frame:focus-visible {
    -webkit-transform: rotateY(0) rotateX(0) rotateZ(0) translateY(-6px);
            transform: rotateY(0) rotateX(0) rotateZ(0) translateY(-6px);
}
.lr-doc-frame:hover::before { -webkit-transform: translate(6px, 6px); transform: translate(6px, 6px); }
.lr-doc-frame:hover::after  { -webkit-transform: translate(12px, 12px); transform: translate(12px, 12px); }
.lr-doc-frame:focus-visible { outline: 2px solid #fff; outline-offset: 8px; }

.lr-doc-frame img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 900 / 1273;
}

/* scanner sweep (plays once when revealed) */
.lr-scan {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 18%;
    background: linear-gradient(to bottom, transparent, rgba(127, 214, 164, 0.28) 85%, rgba(127, 214, 164, 0.9) 100%);
    opacity: 0;
    pointer-events: none;
}
.lr-doc.is-visible .lr-scan {
    -webkit-animation: lrScan 1.6s cubic-bezier(0.45, 0, 0.55, 1) 0.5s 1 both;
            animation: lrScan 1.6s cubic-bezier(0.45, 0, 0.55, 1) 0.5s 1 both;
}
@-webkit-keyframes lrScan { 0% { top: -18%; opacity: 1; } 90% { opacity: 1; } 100% { top: 100%; opacity: 0; } }
@keyframes lrScan { 0% { top: -18%; opacity: 1; } 90% { opacity: 1; } 100% { top: 100%; opacity: 0; } }

.lr-zoom {
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(10, 12, 16, 0.85);
    color: #fff;
    font-size: 0.85rem;
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.lr-doc-frame:hover .lr-zoom,
.lr-doc-frame:focus-visible .lr-zoom { opacity: 1; -webkit-transform: scale(1); transform: scale(1); }

.lr-doc figcaption {
    margin-top: 36px;
    text-align: center;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-grey);
}

/* ---------- Lightbox ---------- */
.lr-lightbox {
    position: fixed;
    inset: 0;
    margin: auto; /* base.css resets margins; restore native dialog centering */
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
    max-width: 92vw;
    max-height: 94vh;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
}
.lr-lightbox::-webkit-backdrop { background: rgba(5, 6, 8, 0.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lr-lightbox::backdrop { background: rgba(5, 6, 8, 0.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lr-lightbox img {
    display: block;
    width: auto;
    height: auto;
    max-width: 92vw;
    max-height: 94vh;
    -o-object-fit: contain;
       object-fit: contain;
    background: #fff;
    -webkit-box-shadow: 0 40px 100px rgba(0, 0, 0, 0.8);
            box-shadow: 0 40px 100px rgba(0, 0, 0, 0.8);
}
.lr-lightbox-close {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(10, 12, 16, 0.8);
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
    z-index: 2;
}
.lr-lightbox-close:hover { background: #fff; color: #000; }
html.lr-lock, html.lr-lock body { overflow: hidden; }

/* ---------- Scroll reveal (only when JS is running) ---------- */
.lr-approval.lr-animate .lr-reveal {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
    -webkit-transition: opacity 0.9s ease, -webkit-transform 0.9s cubic-bezier(0.25, 1, 0.5, 1);
    transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.25, 1, 0.5, 1);
}
.lr-approval.lr-animate .lr-reveal.is-visible {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
}
.lr-approval.lr-animate .lr-doc.lr-reveal { -webkit-transform: translateY(60px); transform: translateY(60px); -webkit-transition-duration: 1.2s; transition-duration: 1.2s; }
.lr-approval.lr-animate .lr-doc.lr-reveal.is-visible { -webkit-transform: none; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
    .lr-inner { grid-template-columns: 1fr; }
    .lr-doc { max-width: 380px; -webkit-box-ordinal-group: 0; -ms-flex-order: -1; order: -1; margin-bottom: 20px; }
    .lr-doc-frame { -webkit-transform: rotateZ(-2deg); transform: rotateZ(-2deg); }
    .lr-copy { text-align: left; }
}
@media (max-width: 575px) {
    .lr-doc { max-width: 300px; }
    .lr-specs { grid-template-columns: 1fr; }
    .lr-spec { padding-left: 0 !important; border-right: 0 !important; }
    .lr-actions { gap: 20px; }
    .hero-text-wrapper .lr-hero-badge { font-size: 0.62rem; letter-spacing: 1.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .lr-pulse::after, .lr-doc.is-visible .lr-scan { -webkit-animation: none; animation: none; }
    .lr-approval.lr-animate .lr-reveal { opacity: 1; -webkit-transform: none; transform: none; -webkit-transition: none; transition: none; }
    .lr-doc-frame, .lr-doc-frame::before, .lr-doc-frame::after { -webkit-transition: none; transition: none; }
}
