
/* ============================================================
   IPK GLOBAL CONSULTING | JAPAN DESK
   Premium responsive design
   ============================================================ */

.japan-desk-page{
    --jd-blue:#123f73;
    --jd-blue-dark:#071f3b;
    --jd-blue-mid:#1b5a98;
    --jd-gold:#c99632;
    --jd-gold-light:#e6c878;
    --jd-text:#173452;
    --jd-muted:#6b7f96;
    --jd-soft:#f4f8fd;
    --jd-border:rgba(18,63,115,.13);
    background:#fff;
    color:var(--jd-text);
    overflow:hidden;
}

.japan-desk-container{
    width:min(1180px,calc(100% - 40px));
    margin:0 auto;
}

.japan-desk-page .reveal{
    opacity:0;
    transform:translateY(25px);
    transition:opacity .75s ease,transform .75s ease;
}
.japan-desk-page .reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* ========================= HERO ========================= */

.japan-desk-hero{
    position:relative;
    min-height:650px;
    display:flex;
    align-items:center;
    padding:80px 0;
    background:
        radial-gradient(circle at 4% 18%,rgba(25,111,210,.17),transparent 31%),
        radial-gradient(circle at 92% 72%,rgba(201,150,50,.16),transparent 29%),
        linear-gradient(135deg,#f3f8ff 0%,#fff 55%,#f8fbff 100%);
    border-bottom:1px solid var(--jd-border);
}

.japan-desk-hero-grid{
    display:grid;
    grid-template-columns:1.02fr .98fr;
    gap:65px;
    align-items:center;
}

.japan-desk-aura{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
    filter:blur(2px);
}
.japan-desk-aura-one{
    width:340px;height:340px;left:-180px;top:60px;
    background:rgba(31,111,209,.08);
}
.japan-desk-aura-two{
    width:300px;height:300px;right:-150px;bottom:-100px;
    background:rgba(201,150,50,.09);
}

.japan-desk-kicker,
.japan-desk-section-kicker{
    display:inline-block;
    color:var(--jd-gold);
    font-size:.77rem;
    font-weight:800;
    letter-spacing:.17em;
    text-transform:uppercase;
}

.japan-desk-hero h1{
    max-width:760px;
    margin:17px 0 22px;
    color:var(--jd-blue-dark);
    font-size:clamp(2.7rem,5vw,5rem);
    line-height:1.04;
    letter-spacing:-.048em;
}

.japan-desk-hero-text{
    max-width:690px;
    margin:0;
    color:var(--jd-muted);
    font-size:1.08rem;
    line-height:1.85;
}

.japan-desk-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:13px;
    margin-top:31px;
}

.japan-desk-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    min-height:52px;
    padding:0 24px;
    border-radius:10px;
    text-decoration:none;
    font-weight:750;
    transition:all .22s ease;
}

.japan-desk-btn:hover{transform:translateY(-2px)}
.japan-desk-btn-primary{
    color:#fff!important;
    background:var(--jd-blue);
    box-shadow:0 13px 30px rgba(18,63,115,.22);
}
.japan-desk-btn-primary:hover{background:var(--jd-blue-dark)}
.japan-desk-btn-outline{
    color:var(--jd-blue)!important;
    background:#fff;
    border:1px solid rgba(18,63,115,.2);
}
.japan-desk-btn-outline:hover{
    box-shadow:0 10px 25px rgba(18,63,115,.11);
}

.japan-desk-trust-row{
    display:flex;
    flex-wrap:wrap;
    gap:25px;
    margin-top:40px;
    padding-top:22px;
    border-top:1px solid rgba(18,63,115,.12);
}
.japan-desk-trust-row div{
    display:flex;
    align-items:center;
    gap:10px;
}
.japan-desk-trust-row strong{
    color:var(--jd-gold);
    font-size:.76rem;
}
.japan-desk-trust-row span{
    color:var(--jd-muted);
    font-size:.82rem;
}

/* Hero network panel */
.japan-desk-hero-panel{
    position:relative;
    min-height:430px;
    padding:30px;
    border:1px solid rgba(255,255,255,.9);
    border-radius:28px;
    background:rgba(255,255,255,.72);
    backdrop-filter:blur(18px);
    box-shadow:0 28px 70px rgba(7,31,59,.14);
    overflow:hidden;
}
.japan-desk-panel-glow{
    position:absolute;
    width:250px;height:250px;
    right:-90px;top:-90px;
    border-radius:50%;
    background:rgba(201,150,50,.13);
}
.japan-desk-panel-top{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:13px;
    color:var(--jd-blue);
    font-size:.7rem;
    font-weight:800;
    letter-spacing:.15em;
}
.japan-desk-panel-line{
    flex:1;
    height:1px;
    background:linear-gradient(90deg,var(--jd-gold),rgba(18,63,115,.1));
}

.japan-desk-network{
    position:relative;
    z-index:2;
    height:265px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}
.japan-desk-network-node{
    width:120px;height:120px;
    flex:0 0 120px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:linear-gradient(145deg,#fff,#edf5ff);
    border:1px solid rgba(18,63,115,.12);
    box-shadow:0 15px 35px rgba(18,63,115,.11);
}
.japan-desk-network-node b{
    font-size:1.8rem;
    color:var(--jd-blue);
}
.japan-desk-network-node small{
    margin-top:6px;
    color:var(--jd-muted);
    font-weight:700;
}
.japan-desk-network-center{
    position:relative;
    width:145px;height:145px;
    flex:0 0 145px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#fff;
    background:linear-gradient(145deg,var(--jd-blue),var(--jd-blue-dark));
    box-shadow:0 20px 45px rgba(18,63,115,.27);
}
.japan-desk-network-center span{
    font-size:2rem;
    font-weight:850;
    letter-spacing:.04em;
}
.japan-desk-network-center small{
    margin-top:5px;
    color:rgba(255,255,255,.75);
    font-size:.66rem;
    text-align:center;
}
.japan-desk-pulse{
    position:absolute;
    inset:-11px;
    border:1px solid rgba(201,150,50,.55);
    border-radius:50%;
    animation:jdPulse 2.6s infinite ease-out;
}
@keyframes jdPulse{
    0%{transform:scale(.9);opacity:.8}
    100%{transform:scale(1.15);opacity:0}
}
.japan-desk-panel-services{
    position:relative;
    z-index:2;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
}
.japan-desk-panel-services span{
    padding:8px 11px;
    border:1px solid rgba(18,63,115,.1);
    border-radius:30px;
    background:#fff;
    color:var(--jd-blue);
    font-size:.72rem;
    font-weight:700;
}

/* ====================== COMMON ====================== */

.japan-desk-section{padding:105px 0}
.japan-desk-two-column{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:75px;
    align-items:start;
}
.japan-desk-section-heading h2,
.japan-desk-section-title h2,
.japan-desk-why-content h2{
    margin:15px 0 20px;
    color:var(--jd-blue-dark);
    font-size:clamp(2rem,3.5vw,3.15rem);
    line-height:1.12;
    letter-spacing:-.035em;
}
.japan-desk-intro-copy p,
.japan-desk-section-title p,
.japan-desk-why-content p{
    margin:0 0 20px;
    color:var(--jd-muted);
    font-size:1.03rem;
    line-height:1.9;
}

/* ================= CAPABILITIES ================= */

.japan-desk-capabilities{
    position:relative;
    z-index:4;
    margin-top:-38px;
    padding-bottom:35px;
}
.japan-desk-capability-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border:1px solid var(--jd-border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 18px 45px rgba(7,31,59,.09);
    overflow:hidden;
}
.japan-desk-capability{
    display:flex;
    gap:17px;
    padding:28px;
    border-right:1px solid var(--jd-border);
}
.japan-desk-capability:last-child{border-right:0}
.japan-desk-capability-icon{
    width:42px;height:42px;
    flex:0 0 42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    color:var(--jd-gold);
    background:#fff8e9;
    font-size:.7rem;
    font-weight:850;
}
.japan-desk-capability h3{
    margin:0 0 7px;
    color:var(--jd-blue-dark);
    font-size:1rem;
}
.japan-desk-capability p{
    margin:0;
    color:var(--jd-muted);
    font-size:.84rem;
    line-height:1.65;
}

/* ================= SERVICES ================= */

.japan-desk-services{
    background:var(--jd-soft);
    border-top:1px solid var(--jd-border);
    border-bottom:1px solid var(--jd-border);
}
.japan-desk-section-title{
    max-width:790px;
    margin:0 auto 52px;
    text-align:center;
}
.japan-desk-service-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}
.japan-desk-service-card{
    position:relative;
    min-height:275px;
    display:flex;
    gap:20px;
    padding:30px 28px;
    border:1px solid var(--jd-border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 30px rgba(18,63,115,.06);
    transition:all .25s ease;
}
.japan-desk-service-card:hover{
    transform:translateY(-7px);
    border-color:rgba(201,150,50,.42);
    box-shadow:0 22px 45px rgba(18,63,115,.12);
}
.japan-desk-card-number{
    flex:0 0 auto;
    color:var(--jd-gold);
    font-size:.77rem;
    font-weight:850;
    padding-top:4px;
}
.japan-desk-service-card h3{
    margin:0 0 10px;
    color:var(--jd-blue-dark);
    font-size:1.17rem;
}
.japan-desk-service-card p{
    margin:0;
    color:var(--jd-muted);
    line-height:1.7;
}
.japan-desk-card-link{
    display:inline-flex;
    gap:8px;
    align-items:center;
    margin-top:19px;
    color:var(--jd-blue)!important;
    font-size:.78rem;
    font-weight:800;
    text-decoration:none;
}
.japan-desk-card-link span{transition:transform .2s ease}
.japan-desk-card-link:hover span{transform:translateX(4px)}

/* ================= WHY ================= */

.japan-desk-why-grid{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:80px;
    align-items:start;
}
.japan-desk-points{
    border-top:1px solid var(--jd-border);
}
.japan-desk-point{
    display:grid;
    grid-template-columns:65px 1fr;
    gap:20px;
    padding:26px 0;
    border-bottom:1px solid var(--jd-border);
}
.japan-desk-point>span{
    color:var(--jd-gold);
    font-size:.8rem;
    font-weight:850;
    padding-top:4px;
}
.japan-desk-point h3{
    margin:0 0 8px;
    color:var(--jd-blue-dark);
    font-size:1.2rem;
}
.japan-desk-point p{
    margin:0;
    color:var(--jd-muted);
    line-height:1.7;
}

/* ================= WORKING MODEL ================= */

.japan-desk-model{
    background:
        radial-gradient(circle at 10% 20%,rgba(25,111,210,.08),transparent 28%),
        linear-gradient(135deg,#f4f8fd,#fff);
}
.japan-desk-model-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}
.japan-desk-model-card{
    min-height:225px;
    padding:30px 25px;
    border:1px solid var(--jd-border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 30px rgba(18,63,115,.06);
    transition:transform .22s ease,box-shadow .22s ease;
}
.japan-desk-model-card:hover{
    transform:translateY(-5px);
    box-shadow:0 20px 38px rgba(18,63,115,.1);
}
.japan-desk-model-number{
    display:block;
    margin-bottom:38px;
    color:var(--jd-gold);
    font-size:.8rem;
    font-weight:850;
}
.japan-desk-model-card h3{
    margin:0 0 11px;
    color:var(--jd-blue-dark);
    font-size:1.2rem;
}
.japan-desk-model-card p{
    margin:0;
    color:var(--jd-muted);
    line-height:1.7;
}

/* ================= ENGAGEMENT ================= */

.japan-desk-engagement{
    background:#fff;
}
.japan-desk-engagement-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:55px;
    align-items:center;
}
.japan-desk-engagement-copy h2{
    max-width:650px;
    margin:15px 0 20px;
    color:var(--jd-blue-dark);
    font-size:clamp(2rem,3.5vw,3.15rem);
    line-height:1.12;
    letter-spacing:-.035em;
}
.japan-desk-engagement-copy>p{
    max-width:680px;
    margin:0;
    color:var(--jd-muted);
    line-height:1.85;
}
.japan-desk-check-list{
    display:grid;
    gap:13px;
    margin-top:27px;
}
.japan-desk-check-list div{
    display:flex;
    gap:11px;
    align-items:center;
    color:var(--jd-text);
    font-weight:650;
}
.japan-desk-check-list span{
    display:inline-flex;
    width:25px;height:25px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#fff;
    background:var(--jd-blue);
    font-size:.75rem;
}
.japan-desk-engagement-card{
    padding:35px;
    border-radius:24px;
    background:linear-gradient(145deg,var(--jd-blue-dark),var(--jd-blue));
    box-shadow:0 25px 55px rgba(7,31,59,.2);
    color:#fff;
}
.japan-desk-engagement-card-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-bottom:22px;
    border-bottom:1px solid rgba(255,255,255,.15);
}
.japan-desk-engagement-card-head span{
    font-size:1.4rem;
    font-weight:850;
}
.japan-desk-engagement-card-head small{
    color:#e7c673;
    font-size:.7rem;
    font-weight:800;
    letter-spacing:.14em;
}
.japan-desk-engagement-flow{
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
    gap:10px;
    align-items:center;
    margin:40px 0;
}
.japan-desk-engagement-flow div{
    text-align:center;
}
.japan-desk-engagement-flow b{
    display:flex;
    width:48px;height:48px;
    margin:0 auto 9px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(255,255,255,.11);
    color:#e7c673;
    font-size:.76rem;
}
.japan-desk-engagement-flow span{
    font-size:.72rem;
    color:rgba(255,255,255,.78);
}
.japan-desk-engagement-flow i{
    width:25px;
    height:1px;
    background:rgba(255,255,255,.25);
}
.japan-desk-engagement-card>p{
    margin:0;
    color:rgba(255,255,255,.74);
    line-height:1.75;
    font-size:.9rem;
}

/* ================= CTA ================= */

.japan-desk-cta{
    padding:80px 0 95px;
    background:var(--jd-blue-dark);
}
.japan-desk-cta-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:45px;
    padding:52px 58px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:24px;
    background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
}
.japan-desk-cta-box .japan-desk-section-kicker{color:#e7c673}
.japan-desk-cta-box h2{
    max-width:760px;
    margin:14px 0;
    color:#fff;
    font-size:clamp(2rem,3.4vw,3.15rem);
    line-height:1.12;
}
.japan-desk-cta-box p{
    max-width:760px;
    margin:0;
    color:rgba(255,255,255,.75);
    line-height:1.8;
}
.japan-desk-cta-box .japan-desk-btn-primary{
    background:#fff;
    color:var(--jd-blue-dark)!important;
    white-space:nowrap;
}

/* ================= RESPONSIVE ================= */

@media(max-width:1080px){
    .japan-desk-hero-grid{
        grid-template-columns:1fr;
        gap:45px;
    }
    .japan-desk-hero-content{
        text-align:center;
    }
    .japan-desk-hero-text{margin-left:auto;margin-right:auto}
    .japan-desk-hero-actions{justify-content:center}
    .japan-desk-trust-row{justify-content:center}
    .japan-desk-hero-panel{max-width:620px;width:100%;margin:auto}
    .japan-desk-service-grid{grid-template-columns:repeat(2,1fr)}
    .japan-desk-model-grid{grid-template-columns:repeat(2,1fr)}
    .japan-desk-why-grid{grid-template-columns:1fr;gap:45px}
}
@media(max-width:820px){
    .japan-desk-container{width:min(100% - 28px,1180px)}
    .japan-desk-hero{padding:65px 0;min-height:auto}
    .japan-desk-hero h1{font-size:clamp(2.35rem,9vw,4rem)}
    .japan-desk-two-column{grid-template-columns:1fr;gap:30px}
    .japan-desk-section{padding:75px 0}
    .japan-desk-capabilities{margin-top:0;padding:25px 0}
    .japan-desk-capability-grid{grid-template-columns:1fr}
    .japan-desk-capability{border-right:0;border-bottom:1px solid var(--jd-border)}
    .japan-desk-capability:last-child{border-bottom:0}
    .japan-desk-engagement-grid{grid-template-columns:1fr;gap:40px}
    .japan-desk-cta-box{padding:38px 28px;flex-direction:column;align-items:flex-start}
}
@media(max-width:620px){
    .japan-desk-service-grid,
    .japan-desk-model-grid{grid-template-columns:1fr}
    .japan-desk-service-card{min-height:auto}
    .japan-desk-hero-actions{flex-direction:column}
    .japan-desk-btn{width:100%}
    .japan-desk-trust-row{display:grid;grid-template-columns:1fr;gap:12px;text-align:left}
    .japan-desk-network{height:230px}
    .japan-desk-network-node{width:88px;height:88px;flex-basis:88px}
    .japan-desk-network-node b{font-size:1.3rem}
    .japan-desk-network-center{width:105px;height:105px;flex-basis:105px}
    .japan-desk-network-center span{font-size:1.45rem}
    .japan-desk-hero-panel{padding:22px}
    .japan-desk-engagement-card{padding:25px 20px}
    .japan-desk-engagement-flow{gap:4px}
    .japan-desk-engagement-flow i{width:9px}
    .japan-desk-engagement-flow span{font-size:.61rem}
}
@media(prefers-reduced-motion:reduce){
    .japan-desk-page .reveal,
    .japan-desk-btn,
    .japan-desk-service-card,
    .japan-desk-model-card{transition:none}
    .japan-desk-pulse{animation:none}
}
