/* ============================================================
   We Serve — Shared Components
   flip cards (.we-flip) + project cards (.we-prj)
   ============================================================ */

/* ===================== ABOUT SECTION (.we-about) ===================== */
.we-about {
    position: relative;
    padding: 110px 0;
    overflow: hidden;
}
.we-about__glow {
    position: absolute;
    width: 500px; height: 500px;
    border-radius: 50%;
    filter: blur(110px);
    pointer-events: none;
    z-index: 0;
}
.we-about__glow--r { background: rgba(232,160,32,0.055); top: -150px; right: -100px; }
.we-about__glow--l { background: rgba(26,138,126,0.04);  bottom: -150px; left: -100px; }
.we-about .container { position: relative; z-index: 1; }

.we-about__visual {
    position: relative;
    height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.we-about__dots {
    position: absolute; inset: 0;
    background-image: radial-gradient(circle, rgba(232,160,32,0.07) 1px, transparent 1px);
    background-size: 30px 30px;
    z-index: 0;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
}
.we-about__ring { position: absolute; border-radius: 50%; z-index: 1; }
.we-about__ring--1 {
    width: 160px; height: 160px;
    border: 2px solid rgba(232,160,32,0.35);
    box-shadow: 0 0 30px rgba(232,160,32,0.1), inset 0 0 30px rgba(232,160,32,0.05);
    animation: we-spin-slow 9s linear infinite;
}
.we-about__ring--2 {
    width: 270px; height: 270px;
    border: 1px dashed rgba(232,160,32,0.18);
    animation: we-spin-slow 16s linear infinite reverse;
}
.we-about__ring--3 {
    width: 390px; height: 390px;
    border: 1px solid rgba(232,160,32,0.07);
    animation: we-spin-slow 26s linear infinite;
}
.we-about__core {
    position: absolute; z-index: 3;
    width: 120px; height: 120px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(145deg, #0f2040, #1a3560);
    box-shadow: 0 0 0 1px rgba(232,160,32,0.25), 0 0 50px rgba(232,160,32,0.12), 0 20px 60px rgba(0,0,0,0.5);
    animation: we-float 6s ease-in-out infinite;
}
.we-about__core svg { width: 46px; height: 58px; filter: drop-shadow(0 4px 12px rgba(232,160,32,0.4)); }
.we-about__core-glow {
    position: absolute; width: 160px; height: 160px; border-radius: 50%;
    background: radial-gradient(circle, rgba(232,160,32,0.12) 0%, transparent 70%);
    animation: we-pulse 3s ease-in-out infinite;
}
.we-about__chip {
    position: absolute; z-index: 5;
    background: rgba(7,16,32,0.82);
    border: 1px solid rgba(232,160,32,0.2);
    border-radius: 18px;
    padding: 0.75rem 1.1rem;
    display: flex; align-items: center; gap: 0.7rem;
    backdrop-filter: blur(14px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.35);
    white-space: nowrap;
    transition: border-color 0.3s, box-shadow 0.3s;
}
.we-about__chip:hover {
    border-color: rgba(232,160,32,0.5);
    box-shadow: 0 10px 35px rgba(0,0,0,0.45), 0 0 15px rgba(232,160,32,0.08);
}
.we-about__chip-icon {
    width: 36px; height: 36px; border-radius: 10px;
    background: rgba(232,160,32,0.12);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; color: var(--we-gold); flex-shrink: 0;
}
.we-about__chip strong { display: block; font-size: 0.88rem; font-weight: 800; color: var(--we-text-light); line-height: 1.2; }
.we-about__chip span   { display: block; font-size: 0.68rem; color: var(--we-text-muted); }
.we-about__chip--iso  { top: 10%;    right: 2%; animation: we-float 5s ease-in-out infinite; }
.we-about__chip--hse  { bottom: 14%; right: 0%; animation: we-float 7s ease-in-out infinite 1s; }
.we-about__chip--year { top: 18%;    left: 2%;  animation: we-float 6s ease-in-out infinite 0.5s; }

.we-about__title {
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 900; line-height: 1.22; color: var(--we-text-light);
    margin: 0.9rem 0 1.4rem;
}
.we-about__title span { color: var(--we-gold); }
.we-about__desc { font-size: 1rem; color: var(--we-text-muted); line-height: 1.95; margin-bottom: 2rem; }
.we-about__desc strong { color: var(--we-gold); font-weight: 700; }

.we-about__feat {
    background: rgba(13,28,50,0.55);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 18px; padding: 1.3rem 1.1rem;
    height: 100%; transition: all 0.32s ease; cursor: default;
}
.we-about__feat:hover {
    background: rgba(232,160,32,0.06); border-color: rgba(232,160,32,0.22);
    transform: translateY(-5px); box-shadow: 0 12px 32px rgba(0,0,0,0.3);
}
.we-about__feat i { font-size: 1.5rem; color: var(--we-gold); display: block; margin-bottom: 0.6rem; transition: transform 0.32s ease; }
.we-about__feat:hover i { transform: scale(1.18) rotate(-5deg); }
.we-about__feat strong { display: block; font-size: 0.97rem; font-weight: 800; color: var(--we-text-light); margin-bottom: 0.22rem; line-height: 1.3; }
.we-about__feat span { font-size: 0.75rem; color: var(--we-text-muted); }

@media (max-width: 991px) { .we-about { padding: 70px 0; } }

/* ===================== FLIP CARD ===================== */
.we-flip {
    perspective: 1100px;
    height: 380px;
}
.we-flip__inner {
    position: relative;
    width: 100%; height: 100%;
    transform-style: preserve-3d;
    transition: transform 0.72s cubic-bezier(0.4,0.2,0.2,1);
    border-radius: 22px;
}
.we-flip:hover .we-flip__inner       { transform: rotateY(180deg); }
.we-flip.is-flipped .we-flip__inner  { transform: rotateY(180deg); }

.we-flip__front,
.we-flip__back {
    position: absolute; inset: 0;
    border-radius: 22px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    overflow: hidden;
}
.we-flip__front                       { pointer-events: none; background-size: cover; background-position: center; }
.we-flip__back                        { pointer-events: none; }
.we-flip:hover      .we-flip__back    { pointer-events: auto; }
.we-flip.is-flipped .we-flip__back    { pointer-events: auto; }
.we-flip.is-flipped .we-flip__front   { pointer-events: none; }

.we-flip__front-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(5,13,26,.96) 0%, rgba(5,13,26,.55) 45%, rgba(5,13,26,.18) 100%);
    transition: background .4s ease;
}
.we-flip:hover .we-flip__front-overlay { background: rgba(5,13,26,.65); }

.we-flip__front-body {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 1.75rem; z-index: 1;
}
.we-flip__front-icon {
    width: 54px; height: 54px;
    background: rgba(232,160,32,.15); border: 1px solid rgba(232,160,32,.35);
    border-radius: 14px; display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; color: var(--we-gold); margin-bottom: .85rem;
    backdrop-filter: blur(6px); transition: all .3s ease;
}
.we-flip:hover .we-flip__front-icon { background: var(--we-gold); color: #050d1a; }

.we-flip__front-title {
    font-size: 1.1rem; font-weight: 800; color: #fff;
    margin: 0 0 .5rem; text-shadow: 0 2px 8px rgba(0,0,0,.5);
}
.we-flip__hint {
    display: inline-flex; align-items: center; gap: .35rem;
    font-size: .72rem; color: rgba(255,255,255,.45); font-weight: 500;
}
.we-flip__hint i { font-size: .8rem; animation: we-spin-slow 3s linear infinite; }

.we-flip__back {
    transform: rotateY(180deg);
    background: linear-gradient(145deg,#0a1a30 0%,#102240 60%,#0d1e38 100%);
    border: 1px solid rgba(232,160,32,.2);
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; padding: 2rem 1.75rem; text-align: center; gap: .75rem;
}
.we-flip__back::before {
    content: ''; position: absolute; top: 0; left: 15%; right: 15%; height: 2px;
    background: linear-gradient(90deg,transparent,var(--we-gold),var(--we-orange),transparent);
    border-radius: 0 0 4px 4px;
}
.we-flip__back-icon {
    width: 64px; height: 64px;
    background: linear-gradient(135deg,rgba(232,160,32,.15),rgba(212,92,21,.1));
    border: 1px solid rgba(232,160,32,.3); border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.65rem; color: var(--we-gold); box-shadow: 0 0 20px rgba(232,160,32,.12);
}
.we-flip__back-title { font-size: 1.05rem; font-weight: 800; color: var(--we-text-light); margin: 0; line-height: 1.35; }
.we-flip__back-text  { font-size: .83rem; color: var(--we-text-muted); line-height: 1.85; margin: 0; flex: 1; }
.we-flip__back-btn {
    display: inline-flex; align-items: center; gap: .3rem;
    background: linear-gradient(135deg,var(--we-gold),var(--we-orange));
    color: #050d1a; font-weight: 700; font-size: .85rem; font-family: 'Cairo',sans-serif;
    padding: .5rem 1.4rem; border-radius: 50px; text-decoration: none;
    transition: all .3s ease; box-shadow: 0 4px 16px rgba(232,160,32,.3); margin-top: auto;
}
.we-flip__back-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(232,160,32,.45); color: #050d1a; }
.we-flip__back-btn i { font-size: 1rem; }

@media (max-width:767px) {
    .we-flip { height: 340px; }
    .we-flip__hint { display: none; }
}

/* ===================== PROJECT CARD (.we-prj) ===================== */
.we-prj {
    display: block; position: relative; overflow: hidden; border-radius: 20px;
    text-decoration: none; background-size: cover; background-position: center;
    background-repeat: no-repeat; cursor: pointer; width: 100%;
}

.we-prj--lg  { height: 430px; }
.we-prj--md  { height: 207px; }
.we-prj--sm  { height: 270px; }
.we-prj--eq  { height: 400px; }

.we-prj__overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to top,rgba(4,11,22,.97) 0%,rgba(4,11,22,.55) 50%,rgba(4,11,22,.18) 100%);
    transition: background .45s ease;
}
.we-prj:hover .we-prj__overlay {
    background: linear-gradient(to top,rgba(4,11,22,1) 0%,rgba(4,11,22,.75) 55%,rgba(4,11,22,.35) 100%);
}

.we-prj__num {
    position: absolute; top: .75rem; left: 1.25rem;
    font-size: clamp(4rem,8vw,6.5rem); font-weight: 900; line-height: 1;
    color: rgba(255,255,255,.055); z-index: 2;
    pointer-events: none; user-select: none; letter-spacing: -.03em;
    transition: color .4s ease;
}
.we-prj:hover .we-prj__num { color: rgba(255,255,255,.09); }

.we-prj__tag {
    position: absolute; top: 1.1rem; right: 1.1rem; z-index: 3;
    padding: .25rem .85rem; border-radius: 50px; font-size: .7rem; font-weight: 700;
    letter-spacing: .04em; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.we-prj__tag--drill  { background:rgba(232,160,32,.18); border:1px solid rgba(232,160,32,.4); color:#f5c842; }
.we-prj__tag--pipe   { background:rgba(26,138,126,.18);  border:1px solid rgba(26,138,126,.4);  color:#2bc5b4; }
.we-prj__tag--proc   { background:rgba(212,92,21,.18);   border:1px solid rgba(212,92,21,.4);   color:#e88030; }
.we-prj__tag--energy { background:rgba(108,92,231,.18);  border:1px solid rgba(108,92,231,.4);  color:#a29bfe; }
.we-prj__tag--maint  { background:rgba(99,179,237,.18);  border:1px solid rgba(99,179,237,.4);  color:#63b3ed; }
.we-prj__tag--consult{ background:rgba(72,187,120,.18);  border:1px solid rgba(72,187,120,.4);  color:#48bb78; }
.we-prj__tag--hse    { background:rgba(252,129,74,.18);  border:1px solid rgba(252,129,74,.4);  color:#fc814a; }

.we-prj__body { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.4rem 1.5rem; z-index: 3; }

.we-prj__title {
    font-size: 1rem; font-weight: 800; color: #fff;
    margin: 0 0 .55rem; line-height: 1.35;
    text-shadow: 0 2px 8px rgba(0,0,0,.6); transition: transform .35s ease;
}
.we-prj--lg .we-prj__title { font-size: 1.25rem; }
.we-prj:hover .we-prj__title { transform: translateY(-2px); }

.we-prj__meta { display: flex; gap: 1rem; flex-wrap: wrap; transition: margin-bottom .4s ease; }
.we-prj:hover .we-prj__meta { margin-bottom: .75rem; }
.we-prj__meta span { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; color: rgba(255,255,255,.45); font-weight: 500; }
.we-prj__meta i { color: var(--we-gold); font-size: .7rem; }

.we-prj__reveal {
    overflow: hidden; max-height: 0; opacity: 0;
    transition: max-height .48s cubic-bezier(.4,0,.2,1), opacity .35s ease .05s;
}
.we-prj:hover .we-prj__reveal { max-height: 130px; opacity: 1; }

.we-prj__desc { font-size: .8rem; color: rgba(255,255,255,.58); line-height: 1.7; margin: 0 0 .75rem; }

.we-prj__btn {
    display: inline-flex; align-items: center; gap: .2rem;
    background: linear-gradient(135deg,var(--we-gold),var(--we-orange));
    color: #050d1a; font-weight: 700; font-size: .78rem; font-family: 'Cairo',sans-serif;
    padding: .38rem 1rem; border-radius: 50px; transition: all .3s ease;
    box-shadow: 0 3px 14px rgba(232,160,32,.35);
}
.we-prj:hover .we-prj__btn { transform: translateX(-3px); }
.we-prj__btn i { font-size: 1.1rem; }

.we-prj::before {
    content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg,var(--we-gold),var(--we-orange));
    z-index: 4; transform: scaleX(0); transform-origin: right;
    transition: transform .45s cubic-bezier(.4,0,.2,1);
}
.we-prj:hover::before { transform: scaleX(1); }

@media (max-width:991px) {
    .we-prj--lg, .we-prj--md { height: 300px; }
    .we-prj--sm  { height: 240px; }
    .we-prj--eq  { height: 300px; }
}
